Html.ValidationSummary显示但我没有Required属性

时间:2015-04-21 11:32:39

标签: asp.net-mvc

我有一个模特。

看起来像这样

public class AddEditNotificationViewModel : BaseViewModel
    {
        public TimeSpan TimeOfDayToRun { get; set; }

        public string[] DaysRunning { get; set; }

        public string Id { get; set; }

        public string CampaignId { get; set; }

        public int ForHowManyWeeks { get; set; }

        public DateTimeOffset StartDate { get; set; }

        public bool RunForever { get; set; }

        public string TimeZone { get; set; }
    }

我认为我有@Html.ValidationSummary( false )

它显示了3个属性的错误,但我没有必需的属性。

好像很怪异?

1 个答案:

答案 0 :(得分:2)

默认情况下,值类型(如boolint)被视为必需,除非您使用Nullable<T>类型。

在您的模型中,TimeOfDayToRunForHowManyWeeksRunForever是不可为空的值类型。如果您将TimeOfDayToRun的类型替换为Nullable<TimeSpan>TimeSpan?,那么您告诉MVC活页夹允许空值,并且不会出现任何验证错误。< / p>

尝试以下模型:

public class AddEditNotificationViewModel : BaseViewModel
{
    public TimeSpan? TimeOfDayToRun { get; set; }

    public string[] DaysRunning { get; set; }

    public string Id { get; set; }

    public string CampaignId { get; set; }

    public int? ForHowManyWeeks { get; set; }

    public DateTimeOffset StartDate { get; set; }

    public bool? RunForever { get; set; }

    public string TimeZone { get; set; }
}