詳細に入る前に、これは私が持っているものです
環境: ASP.NET MVC 2 を使用した VS 2008
ベースモデルコード
[DisplayName("Current Application Status")]
[Required(ErrorMessage = "Current Status has to be provided")]
public virtual int CurrStatus{ get; set; }
スクリプト参照
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<link href="../../Content/jqueryui.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>
コードを表示
<tr>
<td><%= Html.LabelFor(model => model.CurrStatus) %></td>
<td>
<%= Html.DropDownListFor(model => model.CurrStatus, Model.CurrentStatus, "-- Select Current Status --").ToString().Replace("CurrStatus", "Application.CurrStatus")%>
<%=Html.ValidationMessageFor(model=>model.CurrStatus) %>
</td>
</tr>
コントローラーコード
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Prefix = "Application")] Application model)
{
try
{
if (ModelState.IsValid)
{
//save to db
}
else
{
InitSelectListItems();
model.CurrentStatus = CurrentStatusModel.GetModelInstance().GetAllAsSelectListItems();
return View(model);
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
ビューでは、検証の概要に、送信されたモデルのエラーのリストが表示されています。ただし、個々のエラー メッセージは何らかの理由で表示されません。さらに、web.config にエントリを追加し、jQuery スクリプトをスクリプト フォルダーに追加した後、クライアント側の検証を有効にしました。クライアント側の検証もトリガーされていません。これに関する助けをいただければ幸いです。