ASP.NET MVC で検証を実装する方法についての非常に優れた投稿と説明がたくさんありますが、私は次のいずれかを好みます。
ただし、jquery $.ajax メソッドを介して ActionMethods を呼び出すのが本当に好きです。$.ajax を使用したい理由の 1 つは、$.ajax 呼び出しを介して (エンティティ作成用のフォームでさえも) 動的にページに読み込まれる部分的なビューが多数あり、ビューを返すことができないためです。動的に読み込まれたすべてのコンテンツが失われます。
問題をよりよく理解できるように、簡単なコードを投稿して、コントローラーのアクションを呼び出し、クライアントの jquery コードで応答を処理する方法を説明します。
コントローラ ActionMethod:
public ActionResult CreateCustomer(string name, string accountNumber)
{
try
{
CustomerService.InsertCustomer(name, accountNumber);
return Json(new ActionInfo()
{
Success = true,
Message = "Customer Is Successfully Created"
});
}
catch (Exception ex)
{
return Json(new ActionInfo()
{
Success = false,
Message = ex.Message
});
}
}
クライアント コードでの呼び出しと処理:
$.ajax({
type: "POST",
url: $form.attr('action'),// /MyController/CreateCustomer
data: $form.serialize(),
error: HandleUnespectedError,
dataType: "json",
success: function(response) {
if (response.Success)
alert("Success: " + response.Message);
else
alert("Error: " + response.Message);
}});
これらの検証フレームワークのいくつかを必要な方法で機能させる良い方法はありますか? ActionInfo に検証エラーを追加し、それをクライアントで処理できることはわかっていますが、それはすでに 1 つの検証の構築に過ぎないと思います。