Я не уверен, ожидается ли это поведение или нет, но похоже, что привязка к пользовательской модели не работает, когда привязка привязана к типу интерфейса. Кто-нибудь экспериментировал с этим?
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 вызывается как ожидалось. Правильно ли это?
Edit
Я снова оказался в этом затруднительном положении через год после того, как я изначально задал этот вопрос, и теперь у меня есть решение, которое работает. Спасибо, Мэтт Хайдинг!