MVCアプリケーションで控えめなjsを使用してフィールド検証を実行しようとしています。
I have the following in the ViewModel:
[DataMember(EmitDefaultValue = false)]
[Required(ErrorMessage="CompanyName is Required")]
[StringLength(40, ErrorMessage = "Must be under 40 characters")]
public string CompanyName { get; set; }
Web.config:
<appSettings>
<add key="Location" value="Test"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
意見:
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>
<div>
<%= Html.TextBoxFor(c => c.CompanyName, new { style = "width:300px"})%>
<%=Html.ValidationMessageFor (c=>c.CompanyName) %>
</div>
CompanyNameを空白のままにしてページを保存しようとしても、エラーは表示されません。また、ページソースに次のように表示されます。
<div>
<input id="CompanyName" maxlength="40" name="CompanyName" style="width:300px" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="CompanyName" data-valmsg-replace="true"></span>
誰かが私が欠けているものを教えてもらえますか?
編集: これがコントローラーのアクションです:
[HttpPost]
public ActionResult Save(EmailModel model)
{
if (ModelState.IsValid)
{
Helper.Save(model);
return Json(JsonEnvelope.Succes());
}
return View(model);
}