在我的应用程序中,MVC Culture设置为“en-US”,UICulture设置为“NL-NL”。
我有一个视图呈现包含Datetime对象的模型。
如果我使其像这样:将UICulture设置为Html.EditorFor方法
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
而不是文化?
微软似乎被遗忘在MVC – Liam
存在非美国格式的日期是啊我还有一个例子来给予。当通过Session.CreateSQLQuery()和List()方法使用nhibernate执行手写sql查询时,您只会得到一个原始对象。然后,如果你试图做一些像Convert.ToDateTime(x [1]);其中x是来自原始对象的对象数组,如果从使用的任何SQL Server返回的日期格式与应用程序文化的预期格式不匹配,则会遇到麻烦。这是应用文化不能总是与UICulture相同的另一个原因。 – user1980412