コントローラの削除アクション中に検証を実行する必要があります。ASP.net MVC3には、このタイプの検証を支援するものがありますか?属性を使用して編集の検証を処理できることは知っていますが、削除についてはどうでしょうか。
たとえば、エンティティオブジェクトの状態を確認する必要があり、特定の条件が満たされた場合、それらを削除することはできません。エラーをチェックして表示するための最良の方法は何ですか
コントローラの削除アクション中に検証を実行する必要があります。ASP.net MVC3には、このタイプの検証を支援するものがありますか?属性を使用して編集の検証を処理できることは知っていますが、削除についてはどうでしょうか。
たとえば、エンティティオブジェクトの状態を確認する必要があり、特定の条件が満たされた場合、それらを削除することはできません。エラーをチェックして表示するための最良の方法は何ですか
削除アクションを次のようにすることができます。以下の例のように呼び出しを行うことで条件を確認できます。CanThiBeDeleted()
そうでない場合は、モデル状態にエラーを追加してビューに送り返すことができます。 、このエラーメッセージが表示されます。
public ActionResult Delete(string id)
{
if(!_service.CanThisBeDeleted(id))
{
ModelState.AddModelError("", "Sorry this cannot be deleted !");
return View();
}
bool isItemDeleted = false;
isItemDeleted = _service.DeleteItem(id);
if(isItemDeleted)
{
// if deleted send where you want user to go.
return RedirectToAction("Index");
}
else
{
ModelState.AddModelError("", "Delete operation failed.");
return View();
}
}
ビューは@Html.ValidationSummary
、表示したいエラー/警告を表示するために使用できます。