通常、データをデータベースにコミットする前に、アクション メソッドでモデルを検証しています。
[HttpPost]
public ActionResult MyActionMethod(MyModelType model){
if (ModelState.IsValid){
//commit changes to database...
return View("SuccessView",model);
}
return View(model);
}
しかし、ごくまれに、モデルのコミット中にビジネス層で追加の検証を実行する必要がある場合があります。検証エラーが発生した場合は、ビジネス レイヤーで例外を発生させ、その例外を使用して検証エラーのあるビューを返したいと考えています。
コントローラーのコードを変更せずにこれを実装する方法を探しています。だから私はこれを避ける方法を探しています:
[HttpPost]
public ActionResult MyActionMethod(MyModelType model){
if (ModelState.IsValid){
try {
//commit changes to database...
} catch (ValidationException e){
ModelState.AddModelError(...);
return View(model);
}
return View("SuccessView",model);
}
return View(model);
}
これを行う方法はありますか?
ValidationExceptions をキャッチし、通常のフィルターが作動する前に検証エラーを含む適切なビューを返すアクション フィルターを考えてい[HandleError]
ました。このようなことは可能ですか?
編集:解決策を見つけました(以下を参照)が、48時間が経過するまでこれを正解としてマークすることはできません...