c# - 何时使用 IModelBinder 与 DefaultModelBinder

标签 c# asp.net-mvc-3

我有一个 MVC3 站点,该站点将具有一个不能使用默认模型绑定(bind)的模型。我一直在查看在线代码示例,看来我可以创建一个自定义模型绑定(bind)器,它可以实现 IModelBinder 或从 DefaultModelBinder 继承。有人可以解释每种方法的优缺点,并可能举例说明何时使用一种方法而不是另一种方法。

提前致谢。

最佳答案

这两种方法实际上是相同的:DefaultModelbinder 实现 IModelBinder,因此从它继承是实现 IModelBinder 的另一种方式。

从 DefaultModelBinder 继承的优点:您可以重用 DefaultModelBinder 的许多行为,并仅覆盖您想要的行为。您不必从头开始实现。

制作您自己的 IModelBinder 实现的优点:您只有一个方法可以实现 (IModelBinder.BindModel),并且您可以完全控制您的实现正在做什么。

正确的方法在很大程度上取决于您对自定义 Binder 的需求,但 DefaultModelBinder 的行为通常是您所需要的(在大多数情况下,普通的旧 DefaultModelBinder 确实是您想要的 Binder )。

关于c# - 何时使用 IModelBinder 与 DefaultModelBinder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8535802/

相关文章:

c# - 使用命名空间和多个嵌套元素反序列化 XML

c# - 将 WebBrowser 控件内容保存为 HTML

entity-framework - Entity Framework 4.1 检索自引用数据

c# - 当 UpdatePanel 触发时,IE8 光标跳到文本区域的末尾

c# - 无法从单例 'MyDbContext' 使用范围服务 'Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor'

c# - MVC 3 Razor 模型未更新 : 'Model' does not contain a definition for 'PropertyName'

c# mvc jquery 实时聊天

javascript - 将 javascript 事件绑定(bind)到 MVC 控件

asp.net-mvc-3 - RemoteAttribute 验证器不会触发服务器端

c# - 使用反射和结构图