Я не уверен, ожидается ли такое поведение или нет, но кажется, что привязка пользовательской модели не работает, когда привязка назначается типу интерфейса. Кто-нибудь с этим экспериментировал?
public interface ISomeModel {}
public class SomeModel : ISomeModel {}
public class MvcApplication : HttpApplication {
protected void Application_Start(object sender, EventArgs e) {
ModelBinders.Binders[typeof(ISomeModel)] = new MyCustomModelBinder();
}
}
С помощью приведенного выше кода, когда я привязываюсь к модели типа SomeModel, MyCustomModelBinder никогда не выполняется; однако, если я изменю приведенный выше код и заменю typeof(ISomeModel)
на typeof(SomeModel)
и отправлю ту же самую форму, MyCustomModelBinder будет вызван должным образом. Это кажется правильным?
Изменить
Я снова оказался в этом затруднительном положении через год после того, как изначально задал этот вопрос, и теперь у меня есть работающее решение. Спасибо, Мэтт Хидингер!