使用html helper时,可以将nullable datetime对象转换为特定格式

时间:2013-11-14 10:03:11

标签: c# asp.net-mvc

我正在使用Mvc 4.以下是我的代码。

@Html.Bootstrap().ControlGroup().DisplayTextFor(m => m.BirthdayDate).Label().LabelText(Person.Resources.Global.BirthDay);

显示包含日期和时间的数据。我想只显示日期。怎么做?

我已经尝试过BirthDay.value.ToShortDateString()和BirthDay.ToString(“dd / mm / yyyy”)。但这会产生错误,因为BirthDay是Nullable DateTime

如果我使用 BirthDay.value.ToShortDateString()和BirthDay.ToString(“dd / mm / yyyy”)和someDate.Value.ToShortDateString()

,我会收到以下错误
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

3 个答案:

答案 0 :(得分:1)

只能添加模型值。因此,尽量不要将无效值转换为模态并尝试使用您的愿望。这可能对你有所帮助。

答案 1 :(得分:0)

如果日期可以为空,则最好使用

someDate.Value.ToShortDateString();

更好:

someDate.GetValueOrDefault().ToShortDateString();

如果您不想在someDatenull时返回任何日期,那么您应该执行以下操作:

if(someDate.HasValue)
{
    someDate.Value.ToShortDateString();
}

答案 2 :(得分:0)

抱歉,我忘了提及。我正在使用https://www.twitterbootstrapmvc.com/

如果对象可以为空,那么

对于普通的html助手,请使用如下,

标签 -

 @Html.DisplayFor(t => t.YourDateObject, "{0:MM/dd/yyyy}") 

文本框 - @Html.TextBoxFor(t => t.YourDateObject, "{0:MM/dd/yyyy}")

对于https://www.twitterbootstrapmvc.com/,请使用如下,

@Html.Bootstrap().ControlGroup().DisplayTextFor(m=>m.BirthdayDate).Format("0:dd/MM/yyyy}").Label().LabelText(Person.Resources.Global.BirthDay)

我从以下链接获得了参考。 Formatted Date TextBoxFor