重定向时删除ajax请求

时间:2014-06-11 06:09:08

标签: ajax asp.net-mvc redirect

我有一个带有3个按钮的Ajax表单用于提交/取消。邮件很好,当它重定向到它应该去的下一页时,会调用正确的操作,但新的Action将其检测为Ajax请求,而不是返回整页,它会尝试返回部分。

查看包含:

@using (Ajax.BeginForm("postingAction", "Controller", new AjaxOptions { HttpMethod = "post" }, new { id = "myId" }))
    {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true) 

        <buttons>
           ...
            <input type="submit" name="Cancel" value="Cancel" class="btn btn-default" />
        </buttons>
        ...
}

为帖子调用的操作:

[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "userType1, userType2")]
public ActionResult postingAction(myViewModel model)
{
   if (Request.Form["Cancel"] != null)
     return RedirectToAction("Action2", "DiffController");
   ...
}

现在当这个RedirectToAction发生时,第二个动作仍然检测到它是一个Ajax调用,如何删除它是一个ajax调用并使其正常调用?

谢谢, 大卫K。

1 个答案:

答案 0 :(得分:1)

尝试使用所需的网址返回JavaScriptResult

[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "userType1, userType2")]
public ActionResult postingAction(myViewModel model)
{
   if (Request.Form["Cancel"] != null)
     return JavaScript( "window.location = '" + Url.Action("Action2","DiffController") + "'" )

   ...
}

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.javascript%28v=vs.118%29.aspx