確èªç°å¢ï¼ASP.NET MVC 5.1ï¼VS2013ï¼
ãã¥ã¼ã«å¯¾ãã¦ä½ããã®æ¤è¨¼ã¨ã©ã¼ãè¿ããéãå½ç¶ã§ãããã¥ã¼ã§ã¯ãã®å 容ã表示ãã¦ããããã¨ã«ãªãã¨æãã¾ãã
ã¹ãã£ãã©ã¼ã«ãã£ã³ã°ã§ä½æãããã¥ã¼çã§å©ç¨ããã¦ããéããçµã¿è¾¼ã¿ã®HTMLãã«ããå©ç¨ãã¦ç°¡åã«è¡¨ç¤ºãããã¨ãã§ãã¾ããã¾ãèªåã§HTMLãä¸ããçµã¿ç«ã¦ã¦åºåãããããªãªã¸ãã«ã®ãã«ãã使ãããã¨ãå¯è½ã§ãã
ã
çµã¿è¾¼ã¿ã®HTMLãã«ãã使ãå ´å
ASP.NET MVCã§ã¯ãããªãã¼ã·ã§ã³ã®çµæã表示ããããã«ã以ä¸ã®ãã«ããç¨æããã¦ãã¾ãã
- Html.ValidationSummary
- Html.ValidationMessage
- Html.ValidationMessageFor<>
ã
ä¾ãã°ãã³ã³ããã¼ã©ã¼ãã以ä¸ã®ããã«ã¨ã©ã¼ãè¨å®ããã¨ãã¾ãã
public class HomeController : Controller { public ActionResult Index() { ModelState.AddModelError("foo", "error for foo"); ModelState.AddModelError("bar", "error for bar"); ModelState.AddModelError("hoge", "error for hoge"); return View(); } }
ã
ãã¥ã¼ã«ã¯ãã«ãã使ã£ã¦ä¸è¨ã®ããã«æ¸ãã¦ã¿ã¾ãã
<fieldset> <legend>Html.ValidationSummary</legend> @Html.ValidationSummary() </fieldset> <fieldset> <legend>Html.ValidationMessage</legend> @Html.ValidationMessage("foo")<br /> @Html.ValidationMessage("bar")<br /> </fieldset>
ã
ä¸è¨ã®å ´åãå®è¡çµæã®HTMLã¯ä»¥ä¸ã®ããã«ãªãã¾ã*1ã
<fieldset> <legend>Html.ValidationSummary</legend> <div class="validation-summary-errors" data-valmsg-summary="true"> <ul> <li>error for foo</li> <li>error for bar</li> <li>error for hoge</li> </ul> </div> </fieldset> <fieldset> <legend>Html.ValidationMessage</legend> <span class="field-validation-error" data-valmsg-for="foo" data-valmsg-replace="true">error for foo</span><br /> <span class="field-validation-error" data-valmsg-for="bar" data-valmsg-replace="true">error for bar</span><br /> </fieldset>
ã
ã
çµã¿è¾¼ã¿HTMLãã«ãã使ããèªåã§åºå
å¤ãã®å ´åã¯çµã¿è¾¼ã¿ã®HTMLãã«ããå©ç¨ããã°äºè¶³ãããããã¾ãããããä¾ãã°ãåºåããHTMLããã«ã«ã«ã¹ã¿ãã¤ãºããå¿ è¦ã«è¿«ããããã¨ãããããããã¾ããã
ãã®ãããªå ´åãViewData
ã®ModelState
ããããã£ï¼ModelStateDictionaryåï¼ã®ä¸èº«ãç´æ¥èªã¿åããã¨ã§ãããªãã¼ã·ã§ã³ã¨ã©ã¼ã®å
容ãåå¾ãããã¨ãã§ãã¾ãã
ã
ãã¨ãã°ä»¥ä¸ã®ããã«ããã¨ãç©ã¿è¾¼ã¾ãã¦ããããªãã¼ã·ã§ã³ ã¨ã©ã¼ãåæãããã¨ãã§ãã¾ãã
<fieldset> <legend>ViewData.ModelStateããæ½åº</legend> @{ foreach (var key in ViewData.ModelState.Keys) { foreach (var e in ViewData.ModelState[key].Errors) { <span>@key : @e.ErrorMessage</span><br /> } } } </fieldset>
ã
åºåãããHTMLã¯ä»¥ä¸ã®ããã«ãªãã¾ã
<fieldset> <legend>ViewData.ModelStateããæ½åº</legend> <span>foo : error for foo</span><br /> <span>bar : error for bar</span><br /> <span>hoge : error for hoge</span><br /> </fieldset>
ã¢ããªå ã§åå©ç¨ããããã§ããã°ãã«ã¹ã¿ã ã®HTMLãã«ãã使ãã¦ãããã§ããã
ã
ãµã³ãã«ã½ã¼ã¹
ãµã³ãã«ã½ã¼ã¹ãgithubã«ç½®ãã¦ããã¾ããã kiyokura/MvcValidationSample01
*1:è¥å¹²ãæ¹è¡ã¨ã¤ã³ãã³ããä¿®æ£ãã¦ãã¾ã