設置: 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);
}
});
我正在考慮爲軟驗證錯誤返回一個不同的狀態代碼,但這感覺很糟糕。
它爲什麼會哈克返回不同的狀態代碼?一個400的「錯誤請求」將是返回驗證錯誤的正確的事情。 –