TITLEとMONTHの2つの列を持つAWARDテーブルがあるSQL Server 2012があります。TITLE は varchar(256) であり、NULL にすることはできません。MONTH は int で、NULL にすることができます。
VS2012 Ultimate と EF 5.0.0 では、MVC4 アプリの TextBoxFor ヘルパーは (data-val="required" and data-val-required="required message")
上記の TITLE 列の検証を生成しませんが、同じビューで MONTH は正しい検証マークアップを取得しています。.edmx デザイナーは、TITLE が NonNullable であることを示していますが、自動生成された AWARD.cs ファイル[Required]
には TITLE 列の属性がありません。
何を試すことができますか?
@model MyProject.Models.AWARD
@{
ViewBag.Title = "Add Award";
Layout = "~/Views/Shared/_EditorLayout.cshtml";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Add Award</legend>
<table>
<tr>
<td>
@Html.LabelFor(model => model.TITLE)
</td>
<td>
@Html.TextAreaFor(model => model.TITLE)
<br />@Html.ValidationMessageFor(model => model.TITLE)
</td>
</tr>
<tr>
<td>
@Html.LabelFor(model => model.MONTH)
</td>
<td>@Html.DropDownListFor(model => model.MONTH, new SelectList(MyProject.Models.Helpers.Months, "key","value"), "[Not Selected]")
<br />@Html.ValidationMessageFor(model => model.MONTH)
</td>
</tr>
<tr>
<td>
<input type="submit" value="Add" />
</td>
<td>
@Html.ActionLink("Cancel", "Index", null, new { @class = "cancel-button" })</td>
</tr>
</table>
</fieldset>
}