2013-07-09 6 views
0

У меня есть связь с параметром:Как перенаправить @ Url.Action

[http://localhost:8545/Admin/Agent/ManageUser?agentId=3230][1] 

После языкового изменения новой ссылке: [HTTP: // локальный: 8545/Admin/Агент/ManageUser] [2]

есть ошибка beacause нет? AgentId = 3230 i use: <input type="hidden" name="ReturnUrl" value="@Url.Action(null)" /> Я не знаю, как изменить @ Url.Action (null), пожалуйста, помогите мне. благодаря!

ответ

0

попробовать это входной параметр

<input type="hidden" name="ReturnUrl" value="@Url.Action(ViewContext.RouteData.Values["controller"].ToString(), ViewContext.RouteData.Values["action"].ToString(), new { agentId = Request.QueryString["agentId"] })" /> 

Елки если Url.Action является controller имени, второй параметр action имени и последним routeValues вы можете добавить строки запроса в URL.

+0

спасибо за помощь я использую значение = «@ Request.Url.PathAndQuery» это все-таки Url + PathAndQuery –

0

Если вам просто нужно вернуть пользователя к тому же URL он был прежде, чем изменить язык, просто держать полный URL в ваш скрытый input следующим образом:

<input type="hidden" name="ReturnUrl" value="@Request.Url.AbsoluteUri" /> 

Кроме того (при условии, что ваш метод ChangeLanguage является доступному используя тот же хост-имя), вы можете просто сделать:

public ActionResult ChangeLanguage(string lang) 
{ 
    // something like... 
    // Session["Lang"] = lang; 

    return Redirect(Request.UrlReferrer.ToString()); 
} 
Смежные вопросы