我不确定此行为是否预期,但是当绑定分配给接口类型时,似乎自定义模型绑定不起作用。有没有人试过这个?
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(SomeModel)的typeof(ISomeModel),并发布完全相同的形式MyCustomModelBinder被调用如预期。那似乎是对的吗
编辑
在我最初问这个问题之后的一年中,我发现自己陷入了困境,现在我有一个解决方案。谢谢Matt Hidinger!
解决方法
我不知道它是否直接相关但是有一些事情你需要考虑什么时候使用模型绑定和接口…我遇到类似的问题与默认模型绑定,但它可能不直接相关,取决于如何你在做事情…
看看以下内容:
ASP.net MVC v2 – 调试模型绑定问题 – BUG?
ASP.net MVC v2 – Debugging Model Binding Issues – BUG?