为什么即使我没有在模型中指定[Required]属性,也会触发客户端验证,说我的默认主题字段是必需的?
型号:
public class Site
{
public int SiteId { get; set; }
[Required(ErrorMessage = "*")]
[LocalizedDisplayName("Title")]
public string Title { get; set; }
[Required(ErrorMessage = "*")]
[LocalizedDisplayName("RootDirectory")]
public string RootDirectory { get; set; }
[LocalizedDisplayName("DefaultTheme")]
public int DefaultThemeId { get; set; } // <-- No required attribute here
[Required(ErrorMessage = "*")]
[LocalizedDisplayName("ThemesDirectory")]
public string ThemesDirectory { get; set; }
public virtual Theme DefaultTheme { get; set; } // <-- No required attribute here
}
查看:
@Html.DropDownListFor(x => x.DefaultThemeId,
new SelectList(ViewBag.Themes, "ThemeId", "Name"), string.Empty)
我正在将Entity Framework 4与ADO.NET实体数据模型一起使用,并将实体映射到我模型中的POCO。
答案 0 :(得分:7)
这是因为整数具有隐含价值。如果您希望它没有值,请使用int?
将类型更改为可为空的int