【发布时间】:2009-12-01 23:28:34
【问题描述】:
我有一个关于 ASP.NET MVC(我使用的是 MVC 2 预览版 2)中的 ModelBinding 与继承相关的问题。
假设我有以下接口/类:
interface IBase
class Base : IBase
interface IChild
class Child: Base, IChild
我有一个自定义模型绑定器 BaseModelBinder。
以下工作正常:
ModelBinders.Binders[typeof(Child)] = new BaseModelBinder();
ModelBinders.Binders[typeof(IChild)] = new BaseModelBinder();
以下内容不起作用(在绑定 Child 类型的对象时):
ModelBinders.Binders[typeof(Base)] = new BaseModelBinder();
ModelBinders.Binders[typeof(IBase)] = new BaseModelBinder();
有什么方法可以为基类创建一个模型绑定器,该模型绑定器将应用于所有继承的类?我真的不想为每个可能的继承类手动输入一些东西。
另外,如果可能的话,有没有办法为特定的继承类覆盖模型绑定器?假设我得到了这个工作,但我需要一个用于 Child2 的特定模型绑定器。
提前致谢。
【问题讨论】:
标签: asp.net-mvc inheritance modelbinders