当我尝试在模型中创建或保存日期时,验证会转换无效的日期格式,而不是尊重我在DataFormatString(dd / MM / yyyy)中指定的格式。我看到框架尝试仅以MM / dd / yyyy格式保存日期。我想用dd / MM / yyyy输入/输出它。
我有以下型号:
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>
我已经检查过ContosoUniversity教程,但它恰好。
感谢您的帮助。
答案 0 :(得分:0)
解决此问题的更好方法之一就是编写自己的 ModelBinder 来处理本地化,详细了解here
属性DisplayFormat
仅指定在使用@Html.EditorFor
时 BornDate 字段的显示方式(并在显示时进行格式化)。