我如何告訴我的控制器/模型它應該期望什麼樣的文化解析日期時間?ASP.NET MVC日期時間文化問題當傳遞價值回控制器
我正在使用一些this post實現jQuery的日期選擇器到我的mvc應用程序。
當我提交日期時,它得到「在翻譯中丟失」我沒有使用美國格式的日期,所以當它被髮送到我的控制器它簡直成爲空。
我已經在用戶選擇日期的形式:
@using (Html.BeginForm("List", "Meter", FormMethod.Get))
{
@Html.LabelFor(m => m.StartDate, "From:")
<div>@Html.EditorFor(m => m.StartDate)</div>
@Html.LabelFor(m => m.EndDate, "To:")
<div>@Html.EditorFor(m => m.EndDate)</div>
}
我做了一個編輯模板此,實現了jQuery日期選擇器:
@model DateTime
@Html.TextBox("", Model.ToString("dd-MM-yyyy"), new { @class = "date" })
我再創建日期選擇器這樣的小部件。
$(document).ready(function() {
$('.date').datepicker({ dateFormat: "dd-mm-yy" });
});
這一切工作正常。
這裏就是問題的開始,這是我的控制器:
[HttpGet]
public ActionResult List(DateTime? startDate = null, DateTime? endDate = null)
{
//This is where startDate and endDate becomes null if the dates dont have the expected formatting.
}
這就是爲什麼我想以某種方式告訴我的控制器,它應該期待什麼文化? 我的模型錯了嗎?我能以某種方式告訴它使用哪種文化,就像數據註釋屬性一樣?
public class MeterViewModel {
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime EndDate { get; set; }
}
編輯:this link解釋了我的問題,也是一個很好的解決它以及。感謝gdoron
使用一種格式要求。 http://stackoverflow.com/a/28219557/960997 – rnofenko
@fomaa我現在使用datepicker與[altField](http://api.jqueryui.com/datepicker/#option-altField)和[altFormat]( http://api.jqueryui.com/datepicker/#option-altFormat)選項來提供一個帶有文化不變版本日期的隱藏字段(就像您提到的ISO8601一樣)。然後提交該字段,我覺得這是一個更好的解決方案。 – FRoZeN