在我的應用程序中,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