【发布时间】:2014-12-12 11:10:46
【问题描述】:
我有 ASP.NET MVC 创建视图。
这个视图绑定了包含两个 DateTime 对象的 ViewModel:
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime When { get; set; }
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Until { get; set; }
我像这样将它绑定到 DatePickers:
@Html.EditorFor(model => model.When, new { @class = "form-control ui-datepicker-my" })
@Html.EditorFor(model => model.Until, new { @class = "form-control ui-datepicker-my" })
并且日期选择器是这样配置的:
<script type="text/javascript">
$().ready(function()
{
$(".ui-datepicker-my").datepicker({
dateFormat: "dd-mm-yy"
});
});
</script>
问题是当我发布表单时,我的模型无效。我的意思是日期“22-02-2014”被转换为错误格式(它试图将“22”读取为月份)
我不想搞乱全球文化。
怎么做?
我尝试过像这样编辑它:
@Html.EditorFor(model => model.When,"{0:dd-MM-yyyy}", new { @class = "form-control ui-datepicker-my" })
但没有进展
【问题讨论】:
-
您需要设置服务器文化使其与该格式匹配,或者创建自定义模型绑定器。
-
遗憾的是,除非您锁定文化设置,否则您会遇到一大堆日期问题。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 datetime