我有日期的噩夢。基於英國,所以我們的日期格式是dd/MM/yyyy。這是用戶在需要某個日期時將輸入到表單中的內容。我有一個表單只接受這樣一個屬性。這顯然是一個DateTime類型。我想發送這個表單到控制器的GET,所以用戶有一個很好的URL他們可以保存傳遞等等。視圖也需要綁定一個JQuery UI日期選擇器到這個元素。我還需要表單元素有一定的id和class,所以我真的需要這樣來呈現給表單:在HTTP GET中綁定en-GB日期
@Html.TextBoxFor(model => model.ReturnDate, new { Class = "date", id = "ReturnDate" })
我指定在web.config英國文化變異:
<globalization uiCulture="en" culture="en-GB"/>
雖然如此處所述(http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx)所示,當獲得控制器執行時,MVC忽略了文化變體並默認爲US(顯然,沒有人存在於美國以外,所以這對微軟來說是好的,沒有幫助,因爲這意味着我必須在每個模型中的每個日期設置爲!
這意味着,如果用戶鍵入01/05/2012我最終與05/01/2012這是錯誤的!
我看過這個問題的各種解決方案,但沒有真正適合我需要的。我需要一種方式,以便所有通過GET發送的日期都是英國格式。我們完全基於英國,因此沒有任何英國格式將被輸入。
我真的不想創建和編輯器,除非他們是一種我沒有View/Viewmodel附加到這個編輯器的方式,因爲它將會強有力地使用到處都有日期選擇器。
所有的幫助將感激地收到!
您鏈接的帖子怎麼不能解決您的問題? – Jon 2012-03-22 11:38:11
據我所見,我需要爲每個查詢字符串參數執行此操作? (bindingContext.HttpContext.Request.QueryString [「theDate」];)這是不實際的。 – Liam 2012-03-22 11:40:49
如果你實現了自定義模型聯編程序,它會影響整個應用程序,querystrings,表單數據,cookie等日期進入你的應用程序的方式 – Jon 2012-03-22 11:43:12