[英]redirection not happening in AJAX POST method in ASP.NET MVC
我在ASP.NET 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"});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.