C# asp.net mvc是否可以使用两个自定义模型绑定器?
所以我有一个从DefaultModelBinder继承的自定义模型绑定器,在这里我重写BindProperty方法来处理我们创建的字段类型 我还有一个我们想覆盖BindModel的控制器,因为我们正在使用该控制器处理多视图会话中的对象 我有CustomModelBinder:DefaultModelBinder,然后在重写BindModel的类中,我有从CustomModelBinder继承的。特殊模型绑定器:CustomModelBinder 但是我在CustomModelBinder中的BindProperty重写中设置了一个断点,当使用同样重写BindModel的控制器时,这一点永远不会被击中 我不能这样继承吗?这里发生了什么事 谢谢大家! 编辑: 在global.asax中:C# asp.net mvc是否可以使用两个自定义模型绑定器?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,所以我有一个从DefaultModelBinder继承的自定义模型绑定器,在这里我重写BindProperty方法来处理我们创建的字段类型 我还有一个我们想覆盖BindModel的控制器,因为我们正在使用该控制器处理多视图会话中的对象 我有CustomModelBinder:DefaultModelBinder,然后在重写BindModel的类中,我有从CustomModelBinder继承的。特殊模型绑定器:CustomModelBinder 但是我在CustomModelBinder中的Bi
ModelBinders.Binders.Add(typeof(ClassA), new SpecialModelBinder());
ModelBinders.Binders.Add(typeof(ClassB), new CustomModelBinder());
ModelBinders.Binders.Add(typeof(ClassC), new CustomModelBinder());
ModelBinders.Binders.Add(typeof(ClassD), new CustomModelBinder());
public class CustomModelBinder : DefaultModelBinder
{
// this will be hit in controllers that handle classes B, C, and D, but will not be hit in controller that handles ClassA
protected override void BindProperty(...){}
}
public class SpecialModelBinder : CustomModelBinder
{
// this will be hit when working in controller that handles ClassA only
public override object BindModel(...){}
}
我在一个空的MVC应用程序中重新创建了您描述的场景,但无法复制您在这里描述的情况。我从CustomModelBinder子类化SpecialModelBinder并在所有类中命中两个断点都没有问题。您是否可以提供其他信息来说明解决方案?正如您在这里所描述的,对于ClassA和B、C和D,只命中BindProperty方法的断点应该没有问题 我尝试过的场景: 1编辑ClassA。结果:为类中的每个属性调用SpecialModelBinder上的BindModel和CustomModelBinder上的BindProperty; 2编辑类B、C或D。结果:CustomModelBinder上的BindProperty为类上的每个属性调用
在Global.asax中,除了区域和路线注册调用之外,您的应用程序\u Start方法中还有其他内容吗?您可以发布一些示例代码吗?