设置:ASP.NET MVC3、jQuery、C#
有没有人有一个干净的解决方案来处理从同一操作方法返回的不同部分视图?一个用于下一阶段,一个用于再次返回带有验证错误的视图,另一个用于显示未处理的异常。
我有一个控制器方法,它执行以下操作:
public ActionResult SomeMethod(MyModel model)
{
if(_service.Validate(model))
{
if(_service.Update(model))
{
// return next view once success
return PartialView("EverythingIsGood"); // This should be pushed into #somediv
}else{
throw new HardException("Tell the client something bad has happened");
}
}
else
{
// Return the same view to highlight the validation errors
HttpContext.Response.StatusCode = 500;
return PartialView("SomeMethod", model); // This should be pushed into #anotherdiv
}
}
客户端脚本
$.ajax({
url: baseUrl + "Home/SomeMethod",
type: "GET",
success: function (data) {
$("#somediv").html(data);
},
error: function (data) {
handleError(data);
}
});
我想我需要类似softerror 的东西:
$.ajax({
url: baseUrl + "Home/SomeMethod",
type: "GET",
success: function (data) {
$("#somediv").html(data);
},
softerror: function (data) {
$("#anotherdiv").html(data);
},
error: function (data) {
handleError(data);
}
});
我正在考虑可能为软验证错误返回不同的状态代码,但这感觉很糟糕。