セットアップ:ASP.NET MVC3、jQuery、C#
同じアクションメソッドから返されるさまざまな部分ビューを処理するためのクリーンなソリューションを誰かが持っていますか?1つは次のステージ用、もう1つは検証エラーでビューを再度返すためのもの、もう1つは未処理の例外を表示するためのものです。
私は次のようなことをするコントローラーメソッドを持っています:
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);
}
});
ソフトエラーのようなものが必要だと思います:
$.ajax({
url: baseUrl + "Home/SomeMethod",
type: "GET",
success: function (data) {
$("#somediv").html(data);
},
softerror: function (data) {
$("#anotherdiv").html(data);
},
error: function (data) {
handleError(data);
}
});
ソフト検証エラーに対して別のステータスコードを返すことを考えていましたが、これはハッキーな感じがします。