4

即使我没有在我的模型中指定 [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。

4

1 回答 1

7

那是因为 int 有一个隐含的值。如果您希望它没有值,请使用 int? 将类型更改为可为空的 int?

于 2011-02-16T00:17:00.930 回答