为什么即使我没有在模型中指定 [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。
最佳答案
那是因为 int 有一个隐含的值。如果您希望它没有值,请使用 int?
关于asp.net - ASP.NET MVC 3 中 DropDownListFor 的不显眼验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011033/