我有一个名为的自定义结构TimeOfDay
,它在这样的视图模型中使用:
public class MyViewModel
{
public TimeOfDay TimeOfDay { get; set; }
}
我创建了一个自定义模型绑定器TimeOfDayModelBinder
,并在 Global.asax.cs 中注册它,如下所示:
ModelBinders.Binders.Add(typeof(TimeOfDay), new TimeOfDayModelBinder());
一切都很好。但是,如果我将视图模型更改为:
public class MyViewModel
{
public TimeOfDay? TimeOfDay { get; set; } // Now nullable!
}
我的自定义模型绑定器不再被调用。我知道该属性不再是 TimeOfDay 的类型,而是不同的 Nullable。那么这是否意味着我应该在 Global.asax.cs 中添加我的自定义模型绑定器两次,如下所示:
ModelBinders.Binders.Add(typeof(TimeOfDay), new TimeOfDayModelBinder());
ModelBinders.Binders.Add(typeof(TimeOfDay?), new TimeOfDayModelBinder());
它有效,但我不喜欢它。这真的有必要将我的类型处理为可为空的,还是我缺少什么?