Asp.net mvc 4 如何根据条件返回部分视图或Json结果?
我在控制器中有以下代码,这里我想将部分视图或Json结果返回给jquery。我的问题是当这个控制器被击中时,jquery会用一些进度条阻塞UI,并等待响应,直到它返回。但当ModelState为false时,它返回部分视图,绕过jqueryunblockui。所以这使得UI永远阻塞Asp.net mvc 4 如何根据条件返回部分视图或Json结果?,asp.net-mvc-4,Asp.net Mvc 4,我在控制器中有以下代码,这里我想将部分视图或Json结果返回给jquery。我的问题是当这个控制器被击中时,jquery会用一些进度条阻塞UI,并等待响应,直到它返回。但当ModelState为false时,它返回部分视图,绕过jqueryunblockui。所以这使得UI永远阻塞 [HttpPost] public ActionResult Edit(Form form) { ... if (!ModelState.IsValid) { return PartialVie
[HttpPost]
public ActionResult Edit(Form form)
{
...
if (!ModelState.IsValid)
{
return PartialView("EditPartial", model);
}
return Json(new
{
Success = true,
Id = ID
});
}
如何解决此问题?您的控制器方法运行正常。您只需要修改ajax调用:
$.ajax({
url: '<your url>',
dataType: 'json',
success: function(data, textStatus, jqXHR) {
// You have the json result.
},
error: function(jqXHR, textStatus, errorThrown) {
// You have the partial view
}
});
您需要更改JavaScript代码以处理返回HTML或JSON结果的操作,并采取适当的行为。问题其实不在控制器中,而是在JavaScript中。请检查响应内容类型。见下文。这将有助于您确定如何处理响应。
http://api.jquery.com/jQuery.ajax/