如何重定向@ Url.Action

时间:2013-07-09 07:47:25

标签: asp.net asp.net-mvc-4

我有参数链接:

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

更改语言后的新链接: [HTTP://本地主机:8545 /管理/代理/ ManageUser] [2]

有错误因为没有?agentId = 3230 我使用:<input type="hidden" name="ReturnUrl" value="@Url.Action(null)" /> 我不知道编辑@ Url.Action(null),请帮帮我。谢谢!

2 个答案:

答案 0 :(得分: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.Actioncontroller名称,第二个参数是action名称,最后一个routeValues可以在网址中添加查询字符串。

答案 1 :(得分:0)

如果您只需要将用户返回到更改语言之前的相同网址,只需将完整的网址保留在隐藏的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());
}