将UICulture设置为Html.EditorFor方法

时间:2014-01-30 13:30:11

标签: c# asp.net-mvc razor

在我的应用程序中,MVC Culture设置为“en-US”,UICulture设置为“nl-NL”。
我有一个视图,它呈现包含Datetime对象的模型 如果我像这样呈现:

Html.EditorFor(x => x.ForFilter.FromDate)

它将以en-US文化格式显示。因此,为了以荷兰语格式显示日期,我必须这样做:

var shortDatePattern = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern;
@Html.TextBoxFor(x => x.ForFilter.FromDate, new {Value = Model.ForFilter.FromDate.ToString(shortDatePattern) })

我知道DisplayFormat属性存在,我可以将其用于DateTime字段,但这不是解决方案,因为UICulture是在运行时确定的。

那么,是否有更优雅的解决方案告诉EditorForTextboxFor方法使用UICulture而不是文化?

1 个答案:

答案 0 :(得分:0)

Model.ForFilter.FromDate.ToString("d", CultureInfo.CurrentUICulture)

会比你现在拥有的恕我直言更优雅。

但是如果你想要在nl-NL文化中格式化的日期(可能是数字),为什么不将CurrentCulture设置为nl-NL?

例如,in web.config

<globalization culture="nl-NL" uiCulture="nl-NL" />