MVC4 razor Html.LabelFor for Nullable <system.datetime> </system.datetime>

时间:2014-08-15 11:01:40

标签: c# asp.net-mvc asp.net-mvc-4 razor

我的模型中有这个属性:

[DisplayName("Birth Date")]
public Nullable<System.DateTime> dtnasc { get; set; }

使用查看htmlhelper

 @Html.LabelFor(_ => _.dtnasc)

并收到此错误: Nullable对象必须具有值。

当属性 dtnasc 的值为null时,我们如何获取DisplayName元数据

2 个答案:

答案 0 :(得分:0)

在视图中,您的案例似乎缺少模型名称。

确保在视图中添加了以下行。

@model SolutionName.modelName

答案 1 :(得分:0)

  

&#34;你必须有别的错误&#34;

问题出现在下一行,但错误始终指向行@ Html.LabelFor

显然我无法在null属性中使用ToString(...)

@Html.LabelFor(_ => _.dtnasc)
<input type="text" id="dtnasc" name="dtnasc" value="@Model.dtnasc.Value.ToString("yyyy/MM/dd")" />

为了解决这个问题,我做了

在模型上添加DisplayFormat以格式化日期:

[DisplayName("Birth Date")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> dtnasc { get; set; }

并在视图中我更改了Helper.EditorFor:

输入的标签
@Html.LabelFor(_ => _.dtnasc)
@Html.EditorFor(_ => _.dtnasc)