0

我的模型类中有 DateTime 属性,

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

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

在我的 View TextBox Displayed as [01/01/0001 00:00:00] 中,如何强制它为 Empty ?

4

3 回答 3

4

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

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

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

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

public DateTime? BirthDay { get; set; }

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


在结构中添加?是 C# 中的糖,用于Nullable<T>结构的位置T
所以DateTime?可以改写为Nullable<DateTime>

于 2012-11-20T10:51:36.540 回答
1

这能行吗?型号变化:

public DateTime? BirthDay {get; set;}

代替

public DateTime BirthDay {get; set;}
于 2012-11-20T10:32:04.740 回答
0

这会做到的。

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

它不是强类型的,TextBox所以你可以设置任何你想要的值,在另一个方向上的绑定将正常工作,

Html.Textbox VS Html.TextboxFor

于 2012-11-20T10:54:37.293 回答