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" />
}

поэтому контроллер вызывается правильно:

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

    return Redirect(returnUrl);
}

Моя проблема в том, что returnUrl получает значение null и не перенаправляется на ту же страницу, что и контроллер. Идеи?

Использование: ASP.NET MVC 4      Бритва

Ответы

Ответ 1

Вы можете использовать метод 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" />
}

И в вашем контроллере получите его как параметр string returnUrl.

Ответ 2

вы также можете сделать это, если вам нужно вернуться к чему-то вроде страницы с подробной информацией и вернуться на ту же страницу с запросом:

return Redirect(Request.UrlReferrer.PathAndQuery);

Ответ 3

Вы можете получить URL-адрес ссылки с Request в контроллере:

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

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

     return Redirect(url);
}

Это перенаправит вас точно на вызывающий URL.

Ответ 4

в вашем классе контроллера используйте Request.UrlReferrer. Нет необходимости передавать URL-адрес со страницы.

   public ActionResult AddEntry(string ip, int TypeId)
    {

         // Do some stuff

         return Redirect(Request.UrlReferrer.ToString());
    }

Ответ 5

  • on Получить как Edit(int? id)

    ViewBag.RefUrl = Request.UrlReferrer.ToString();
    
  • в представлении @Html.Hidden("RefUrl");
  • в сообщении Edit(int id,string RefUrl)

    return Redirect(RefUrl);