ASP.NET MVC3 Razor实体框架-DataFormatString属性不工作
当我尝试在模型中创建或保存日期时,验证将使用无效的日期格式,而不是使用DataFormatString(dd/MM/yyyy)中指定的格式。我看到框架试图仅以MM/dd/yyyy格式保存日期。我想在dd/MM/yyyy中输入/输出它 我有以下型号:ASP.NET MVC3 Razor实体框架-DataFormatString属性不工作,asp.net,asp.net-mvc-3,razor,entity-framework-4.1,jquery-ui-datepicker,Asp.net,Asp.net Mvc 3,Razor,Entity Framework 4.1,Jquery Ui Datepicker,当我尝试在模型中创建或保存日期时,验证将使用无效的日期格式,而不是使用DataFormatString(dd/MM/yyyy)中指定的格式。我看到框架试图仅以MM/dd/yyyy格式保存日期。我想在dd/MM/yyyy中输入/输出它 我有以下型号: public class MyModel { public int MyModelID { get; set; } [DataType(DataType.EmailAddress)] public
public class MyModel {
public int MyModelID { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime BornDate { get; set; }
}
我使用编辑模板来显示已编辑的数据:
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("dd/MM/yyyy") : DateTime.Today.ToString("dd/MM/yyyy"), new { @class = "date" })
我使用以下代码注册了jquery日期选择器:
$(document).ready(function () {
$('.date').datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy"
});
});
我有以下看法:
<div class="editor-field">
@Html.EditorFor(model => model.DataNascimento)
@Html.ValidationMessageFor(model => model.DataNascimento)
</div>
@EditorFor(model=>model.DataNascimento)
@Html.ValidationMessageFor(model=>model.DataNascimento)
我查阅了ContosoUniversity教程,碰巧是
感谢您的帮助。解决此问题的一个更好的选择是编写您自己的ModelBinder要处理本地化问题,请阅读更多相关信息
属性
DisplayFormat
is仅指定BornData字段的显示方式(以及显示时的格式),例如,当使用@Html.EditorFor
时,此解决方案有效,但链接中的示例已被弃用,因为IModelBinder接口现在具有另一个签名。另一种可能的解决方案包括在区域和语言中更改日期和时间的格式。