如何根据条件返回部分视图或Json结果?

时间:2014-03-11 16:44:19

标签: asp.net-mvc-4

我在控制器中有以下代码,这里我想将部分视图或Json结果返回到jquery。我的问题是当这个控制器被命中时jquery用一些进度条阻止UI并等待响应直到它返回。但是当ModelState为false时,它返回绕过jquery unblock UI的部分视图。所以这会让UI永远阻止。

[HttpPost]
public ActionResult Edit(Form form)
{
  ...
  if (!ModelState.IsValid)
  {
     return PartialView("EditPartial", model);
  }  

   return Json(new
   {
      Success = true,
      Id = ID
    });
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的控制器方法表现正常。你只需要修改你的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 
    }
});

空响应也被视为失败的json解析。您的控制器方法应该返回null或{}的响应。

有关dataTypeerror

的更多详情,请参阅以下网址
http://api.jquery.com/jQuery.ajax/