Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如何根据条件返回部分视图或Json结果?_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 如何根据条件返回部分视图或Json结果?

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

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

[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/