回发后的模型绑定的DateTime属性为NULL
本文关键字:属性 NULL DateTime 模型 绑定 | 更新日期: 2023-09-27 18:20:18
我的ASP.NET MVC视图模型具有日期时间属性,如:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "yyyyMMdd")]
public DateTime DateOfBirth { get; set; }
我的控制器操作有:
[HttpPost]
public JsonResult OnCreate(MyViewModel model)
{
}
我的属性是绑定的,除了日期时间属性。
我输入的日期如下:
19500125
那是1950年,1月25日,这是我的日期格式设置为:yyyyMMdd
如果我做以下工作:
DateTime dateOfBirth;
if (DateTime.TryParseExact(Request["User.dateOfBirth"], "yyyyMMdd", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateOfBirth))
{
model.User.DateOfBirth = dateOfBirth;
}
但是上面没有使用内置绑定,也不是正确的做法。
有什么线索可以解释为什么日期时间绑定不起作用吗?
有什么线索可以解释为什么日期时间绑定不起作用吗?
它正在按预期工作。默认的ModelBinder仅绑定到特定的日期时间格式。我认为问题在于您假设DisplayFormatAttribute
对ModelBinder有一些影响。正如属性所述,它仅适用于"显示格式",而不适用于模型绑定。如果你有一个自定义的DateTime格式(你这样做了),那么你需要编写一个自定义DateTime模型绑定器来绑定它。