4

モデルで[必須]属性を指定していなくても、デフォルトのテーマフィールドが必須であるというクライアント検証がトリガーされるのはなぜですか?

ここに画像の説明を入力してください

モデル :

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)

ADO.NETエンティティデータモデルでEntityFramework4を使用しており、モデル内のPOCOにエンティティをマッピングしています。

4

1 に答える 1

7

これは、intには暗黙の値があるためです。値を持たせたくない場合は、intを使用して型をnull許容intに変更しますか?

于 2011-02-16T00:17:00.930 に答える