У меня есть пользовательская структура с именем 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());
Это работает, но есть кое-что, что мне не нравится в этом.Это действительно необходимо для того, чтобы считать мой тип обнуляемым, или я что-то упустил?