我有ASP.NET MVC创建视图。
此视图绑定了ViewModel,其中包含两个DateTime对象:
[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" })
但没有进展
答案 0 :(得分:0)
如果你真的坚持不为应用程序/页面设置文化(它会咬你)。你可以用这个:
DateTime.TryParseExact(inputedDateString, formatOfInput, CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out result))
类似
DateTime myDate = DateTime.MinValue;
string valueFromForm = "22-02-2014";
DateTime.TryParseExact(valueFromForm , "dd-MM-yyyy", CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out myDate))