我有一个Ajax表单,有3个按钮可供提交/取消。Post处理得很好,当它重定向到应该转到的下一页时,将调用正确的操作,但新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。
发布于 2014-06-11 07:28:13
尝试使用所需的url重新测试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
https://stackoverflow.com/questions/24155718
复制相似问题