【问题标题】:Change default DateTime format for razor更改剃须刀的默认日期时间格式
【发布时间】:2013-07-30 07:06:09
【问题描述】:

有没有办法可以将所有 DateTime 对象的默认格式更改为例如Razor 中的“dd.MM.yyyy”?

我想介绍程序员忘记调用扩展方法或传递格式字符串的情况,即<p>@Model.MyDateTimeObject</p>。

【问题讨论】:

  • 可以使用 DateTime 的数据模板来达到类似的效果。这比全局更改默认文化设置的影响要小。

标签: c# asp.net-mvc datetime razor datetime-format


【解决方案1】:

没有类似 Razor 中的默认格式的东西。当你这样做时:<p>@Model.MyDateTimeObject</p> Razor 将简单地使用默认的DateTime.ToString 重载来打印日期。

这取决于实际的文化信息,例如,如果您希望您的示例作为默认 ToString 行为,那么您应该更改实际请求的当前文化。例如。在 global.asax 中:

protected void Application_BeginRequest()
{
    CultureInfo culture = (CultureInfo)CultureInfo.InvariantCulture.Clone();
    culture.DateTimeFormat.ShortDatePattern = "dd.MM.yyyy";
    culture.DateTimeFormat.LongTimePattern = "";
    Thread.CurrentThread.CurrentCulture = culture;
}

【讨论】:

  • 谢谢。我可以做些什么来切换文化仅用于视图渲染,而不是用于我的服务器代码的其余部分?是否有与此刻匹配的 ActionFilter 方法?
  • 据我所知,没有这样的内置动作过滤器,但您可以轻松创建一个:msdn.microsoft.com/en-us/library/… 您可以在 OnResultExecuting 中保存当前文化并切换到新文化,然后您可以更改它回到 OnResultExecuted。
猜你喜欢
  • 1970-01-01
  • 2011-06-08
  • 2016-01-25
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多