用ActionLink中的ActionResult重定向到新页面

本文关键字:新页面 重定向 ActionResult ActionLink 中的 | 更新日期: 2023-09-27 18:15:48

我尝试了很多方法,但都没有运气…我一定是离题太远了。

这是我的动作链接:

                        @Ajax.ActionLink("Delete all", "Empty",
                    new AjaxOptions()
                    {
                        HttpMethod = "POST",
                        OnBegin = String.Format("if(!confirm('Are you sure you want to permanently delete {0} items?')){{return false;}}",ViewBag.TotalItems),
                        OnComplete = "location.reload()",
                    }

和我的ActionResult,我已经尝试了所有注释掉的返回:

   public ActionResult Empty()
    {
        //return Json(new
        //{
        //    redirectUrl = Url.Action("Index", "Home"),
        //    isRedirect = true
        //});
        //return RedirectToRoute(new { controller = "Home", action = "Index" });
        //return Redirect("http://google.ca");
        return RedirectToAction("Index", "Home");
        //return new JsonResult() { Data = new { redirectURL = "/" } };
    }

但是我不能让它重定向到任何新的页面:/

任何帮助或指导都是感激的…

编辑:我应该注意到,我最初并没有使用"OnComplete"行,直到最近才尝试了一切。

用ActionLink中的ActionResult重定向到新页面

完成你需要的一个粗略的方法是:

空函数中的

,将RedirectToAction替换为:

var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Home");
return Json(new { Url = redirectUrl });

在javascript中,替换

OnComplete = "location.reload()",   <-- this additional comma should be removed

OnSuccess= "OnAjaxSuccess"

然后在Javascript中添加一个函数

function OnAjaxSuccess(data) {
    window.location.href = data.Url;
}

您得到了响应,但是没有得到预期的响应。您对服务器进行异步调用,并且您的响应OnSuccess函数的result参数中。

@Ajax.ActionLink("Delete all", "Empty",
  new AjaxOptions()
  {
      HttpMethod = "POST",
      OnBegin = String.Format("if(!confirm('Are you sure you want to permanently delete {0} items?')){{return false;}}",ViewBag.TotalItems),
      OnComplete = "location.reload()",
      OnSuccess = "Success"
  }

结果在这里,在data parameter

<script>
    function Success(data) {
        console.log(data)
    }
</script>

data参数包含Index action

返回的页面

你可以尝试使用HtmlHelper而不是AjaxHelper