C# mvc - 控制器返回部分视图或 json 数据
C# mvc - Controller returns either partial view or json data
我正在对控制器进行ajax调用。如果执行成功,控制器将返回一个字符串,如果发现错误,它将返回部分视图。我迫使它失败,但它仍然进入 ajax 的成功事件。
如何让它在失败时显示部分视图,或者在成功时提醒字符串值?
阿贾克斯调用:
$.ajax({
url: '@Url.Action("GetItem","Home")',
data: { },
success: function (result) {
alert(result);
},
error: function (result) {
$(".MyDiv").html(result);
}
})
控制器:
public ActionResult GetItem([DataSourceRequest]DataSourceRequest request)
{
try
{
throw new Exception("ERROR");
//return Json("Success", JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
AlertMessage alertMessage = new AlertMessage();
alertMessage.MessageText = "A critical error has occurred, please contact your administrator.";
alertMessage.ErrorMessageText = ex.ToString();
alertMessage.MessageHeading = "Critical Error";
return PartialView("~/Views/Common/ErrorMessageDisplay.cshtml", alertMessage);
}
}
如果
请求失败error
将调用您作为 ajax 调用参数提供的函数。这意味着响应状态代码是 40* 或 50* 代码之一。
但是,当您从控制器返回PartialView
时,实际上响应的状态代码为 200,即"OK" - 这就是调用成功函数的原因。
您可以通过在 return PartialView(...
之前添加 Response.StatusCode = 500;
来修改控制器代码,这应该可以解决问题。
相关文章:
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 发送json对象或使用express路由呈现视图
- 使用javascript在MVC视图中解析.net JSON字符串
- JSON范围的更改没有反映在angularjs中的视图中
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 如何在视图中显示json返回的linq列表
- 如何使用不同视图的JSON对象更新angular js中的全局JSON字段
- 将JSON REST请求加载到Kendo ui列表视图中的问题
- onclick在视图中显示重复的json结果
- 如何从JSON数组中获取数据并将其放入列表视图中
- 如何将 json 数据发送到代码点火器视图
- 将 JSON 数据从控制器传递到指令并显示在视图中
- 如何在网页上存储记录 (json) 并仅在“视图”上的记录上显示
- 挖空,映射后从视图模型获取 JSON
- 如何将嵌套的JSON / C#数组加载到视图模型中?使用Knockout,jQuery
- 如何在 android 中的可扩展列表视图组和子项中加载 json 数据
- 如何从另一个视图上编写的 JS 代码重定向到控制器,并将 JSON 对象随之传递
- 客户端通过JS请求JSON并填充Rails视图
- 我的视图模型不会根据 JSON 结果淘汰来增加数字
- Rails中的AJAX GET请求,而不呈现视图/json