ASP.NET MVC 4 - 在控制器结束后重定向到同一页面

use*_*552 16 c# asp.net-mvc razor asp.net-mvc-4

从页面我有以下内容:

@using (Html.BeginForm("AddEntry", "Configure", FormMethod.Get, new { returnUrl = this.Request.RawUrl }))
{
    @Html.TextBox("IP")
    @Html.Hidden("TypeId", 1)
    <input type="submit" value="@Resource.ButtonTitleAddComponent" />
}
Run Code Online (Sandbox Code Playgroud)

所以控制器被正确调用:

public ActionResult AddEntry(string ip, int TypeId, string returnUrl)
{
    // Do some stuff

    return Redirect(returnUrl);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是returnUrl获取null并且它不会重定向到调用控制器的同一页面.想法?

使用:ASP.NET MVC 4 Razor

vid*_*uch 40

如果您需要返回类似于详细信息页面的内容并返回到包含查询的同一页面,您也可以执行此操作:

return Redirect(Request.UrlReferrer.PathAndQuery);
Run Code Online (Sandbox Code Playgroud)


Fal*_*als 14

您可以从Request控制器中获取Refer URL :

public ActionResult AddEntry(string ip, int TypeId, string returnUrl)
{

     // Do some stuff
     string url = this.Request.UrlReferrer.AbsolutePath;

     return Redirect(url);
}
Run Code Online (Sandbox Code Playgroud)

这会将您重定向到调用URL.


Fel*_*ani 12

Request.QueryString对于示例,您可以使用方法从URL获取一些值:

@using (Html.BeginForm("AddEntry", "Configure", FormMethod.Get, null))
{
    @Html.TextBox("ip")
    @Html.Hidden("TypeId", 1)
    @Html.Hidden("returnUrl", this.Request.RawUrl)
    <input type="submit" value="@Resource.ButtonTitleAddComponent" />
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,将其作为参数接收string returnUrl.

  • @ user1624552用`this.Request.RawUrl`替换`QueryString`.@FelipeOriani重定向的URL是请求表单中的当前URL. (4认同)

Est*_*din 8

在你的控制器类中使用Request.UrlReferrer.没有必要从页面传递URL.

   public ActionResult AddEntry(string ip, int TypeId)
    {

         // Do some stuff

         return Redirect(Request.UrlReferrer.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

  • 没有必要转换为字符串.通过执行Request.UrlReferrer.AbsoluteUri它的工作原理. (3认同)