重定向不发生在AJAX POST方法在ASP.净MVC
本文关键字:方法 ASP MVC POST AJAX 重定向 | 更新日期: 2023-09-27 18:17:08
我在ASP中有以下视图页面。净MVC
@model ProjectName.Model.Sample
@{
}
<div class="row">
<div class="col-xs-12">
<form class="form-horizontal" role="form">
<div class="form-group">
..
</div>
<div class="form-group">
..
</div>
</form>
</div>
<div class="col-sm-offset-1 col-sm-11">
<button type="button" class="ss" id="savebutton">Save</button>
<button type="button" class="ssd">Clear</button>
</div>
</div>
<script type="text/javascript">
$("#savebutton").click(function () {
$.ajax({
type: "POST",
dataType: "html",
url: '@Url.Action("AssignUsers", "Sample")',
data: { ... },
success: function ()
{
},
error: {}
});
});
}
</script>
然后我有以下post方法来捕获Ajax post方法
[HttpPost]
public ActionResult AssignUsers(...)
{
try
{
if (sucess)
{
// I have an Area call Account therefor try to direct like below
return RedirectToAction("Index", "Sample", new { area = "Account" });
}
else
{
ModelState.AddModelError("", "Please try again.");
}
return View();
}
catch (Exception ex)
{
throw ex;
}
}
然后我把
return RedirectToAction("Index", "Sample", new { area = "Account" });
return Redirect("~/Account/Sample/Index");
但那曾经也不工作。
这个成功后,这不是直接到理想的位置,我的方法错了。
你能做的就是将重定向动作添加到Javascript代码中,并在控制器上通过Json捕获它:
$("#savebutton").click(function () {
$.ajax({
type: "POST",
dataType: "html",
url: '@Url.Action("AssignUsers", "Sample")',
data: { ... },
success: function (result)
{
if (result.isSuccess==false)
{
//Add your redirect code here:
window.location.href = '@Url.Action("Index", "Sample")';
}
},
error: {}
});
});
}
在你的控制器上,你将使用Json捕获它:
if (sucess)
{
return Json(new {isSuccess = false, message = "Your message here"});
}