代码之家  ›  专栏  ›  技术社区  ›  Shawn Mclean

ASP.NET MVC:在不同的控制器中返回URL

  •  1
  • Shawn Mclean  · 技术社区  · 14 年前

    如何重定向到另一个控制器?

    我有一个返回URL设置如下:

    关于一个 Admin/estates 观点:

    <% using (Html.BeginForm("Delete", "Estates", new {returnUrl = "Admin/Estates"}))
    { %>
          <%: Html.Hidden("EstateId", estate.EstateId) %>
          <button type="submit" onclick="return DoDelete()">Delete</button>
    <% } %>
    

    调用地产控制者操作:

        [HttpPost]
        public ActionResult Delete(FormCollection collection, string returnUrl)
        {
            return Redirect(returnUrl ?? Url.Action("Index", "Estates"));
        }
    

    我的问题是,如果我从管理员发送删除,它会重定向到不存在的URL: localhost/estates/admin/estates . 如何正确重定向?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Darin Dimitrov    14 年前
    if (!string.IsNullOrEmpty(returnUrl))
    {
        return Redirect(returnUrl);
    }
    return RedirectToAction("Index", "Estates");
    

    以你的形式:

    <% using (Html.BeginForm("Delete", "Estates", 
        new { returnUrl = Url.Action("Admin", "Estates") }))
    { %>
          <%: Html.Hidden("EstateId", estate.EstateId) %>
          <button type="submit" onclick="return DoDelete()">Delete</button>
    <% } %>