在我的应用程序中,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
是在运行时确定的。
那么,是否有更优雅的解决方案告诉EditorFor
和TextboxFor
方法使用UICulture
而不是文化?
答案 0 :(得分:0)
Model.ForFilter.FromDate.ToString("d", CultureInfo.CurrentUICulture)
会比你现在拥有的恕我直言更优雅。
但是如果你想要在nl-NL文化中格式化的日期(可能是数字),为什么不将CurrentCulture
设置为nl-NL?
例如,in web.config:
<globalization culture="nl-NL" uiCulture="nl-NL" />