ASP.NET

ASP.NET C# Data Annotations チェックボックスの必須チェックの方法(落とし穴解決済み)

申込フォームによくある、”個人情報保護方針に同意する” などのチェックボックスのValidationのかけ方を紹介します。

まずModel,View,Controllerには下記のように書きます。

Model
[crayon]
[Range(typeof(bool), "true", "true")]
public bool PrivacyPolicyAgreement { get; set; }
[/crayon]

View
[crayon]

@Html.ValidationMessageFor(x => Model.PrivacyPolicyAgreement, "エラー字のメッセージ""))
[/crayon]

Controller
[crayon]
using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace MvcRequiredCheckbox
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}

[HttpPost]
public ActionResult Index(SampleViewModel viewModel)
{
if(!ModelState.IsValid)
{
return View(viewModel);
}

return Content("Success");
}
}
}
[/crayon]

もうひと手間必要です

上記のようにMVCを書けば動きそうに見えますが、実はもう一工夫必要です。このままだと、サーバ側のValidationはちゃんとうごくのですが、クライアント側のValidationがなぜか逆になります。(チェックを付けるとエラー、外すとOK という動き)

そこで下記のようなScriptをViewに入れてあげます。
[crayon]

[/crayon]

これで正常な動きをします。

Ads by Google

Ads by Google

-ASP.NET
-

© 2023 みる米技術部 Powered by AFFINGER5