首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET MVC3中以特定格式呈现DateTime?

如何在ASP.NET MVC3中以特定格式呈现DateTime?
EN

Stack Overflow用户
提问于 2011-05-14 19:56:02
回答 15查看 217.1K关注 0票数 119

如果我的模型类中有一个DateTime类型的属性,我如何以特定的格式呈现它-例如,以ToLongDateString()返回的格式呈现它?

我试过了..。

代码语言:javascript
复制
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())

...which会引发异常,因为表达式必须指向属性或字段。还有这个..。

代码语言:javascript
复制
@{var val = item.MyDateTime.ToLongDateString();
  Html.DisplayFor(modelItem => val);
}

...which不会抛出异常,但是呈现的输出是空的(尽管val包含期望值,正如我在调试器中看到的那样)。

谢谢你提前给我提示!

编辑

ToLongDateString只是一个例子。我实际上想使用的是DateTimeDateTime?的自定义扩展方法,而不是ToLongDateString

代码语言:javascript
复制
public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
    if (dateTime.TimeOfDay == TimeSpan.Zero)
        return dateTime.ToString("d");
    else
        return dateTime.ToString("g");
}

public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
    if (dateTime.HasValue)
        return dateTime.Value.FormatDateTimeHideMidNight();
    else
        return "";
}

因此,我认为不能在ViewModel属性上使用DisplayFormat属性和DataFormatString参数。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6001654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档