Mvc 3 DateTime属性模型默认值

时间:2012-11-20 09:46:58

标签: asp.net-mvc asp.net-mvc-3

我的Model类中有DateTime属性,

然后在视图中我正在使用:

 @Html.TextBoxFor(m => m.BirthDay, new {@disabled="true" , @value="" })

在我的View TextBox中显示为[01/01/0001 00:00:00],如何强制它为空?

3 个答案:

答案 0 :(得分:4)

DateTime的默认值= 01/01/0001 00:00:00

这是因为DateTime是结构而不是对象。这也适用于其他一些C#变量,如Int,默认值= 0

其他C#变量(如String)在默认情况下是可为空的,因为它们是一个对象。

要使这些结构可为空,您需要在变量声明中添加一个QuestionMark,如

public DateTime? BirthDay { get; set; }

现在您的DateTime可以包含空值。并且您的文本框的值将不包含任何默认值


?添加到结构中的是Nullable<T>的C#糖,其中T是结构。
因此,DateTime?可以重写为Nullable<DateTime>

答案 1 :(得分:1)

这可以吗?模型的变化:

public DateTime? BirthDay {get; set;}

而不是

public DateTime BirthDay {get; set;}

答案 2 :(得分:0)

这样做。

@Html.TextBox("BirthDay", "", new {@disabled="true" })

它不会强烈键入TextBox,因此您可以设置所需的任何值,在另一个方向上的绑定将正常工作,

Html.Textbox VS Html.TextboxFor