我有一个 SQL Server 2012,其中有包含两列 TITLE 和 MONTH 的 AWARD 表。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>
}