【问题标题】:.NET Model Binders.NET 模型绑定器
【发布时间】:2014-08-02 01:29:09
【问题描述】:

我试图在我的 ASP.NET MVC 4 项目中创建自定义模型绑定器。但是我被 IModelBinder iterfaces 卡住了。 VS 可以找到三个 IModelBinder 接口。在以下命名空间中。

using System.Web.Http.ModelBinding;
using System.Web.Mvc;
using System.Web.ModelBinding;


bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext);
bool BindModel(ModelBindingExecutionContext modelBindingExecutionContext, ModelBindingContext bindingContext);

所有相关的类,如 ModelBindingContext、ModelMetadata 和其他类也是重复的。我和我的朋友不知道这种可怕的代码重复的目的是什么。为什么微软开发人员没有将公共类提取到共享程序集中? 据我了解,MVC 中使用了一个接口,Web Api 中使用了一个接口,第三个版本的目的是什么?这些接口是独立的还是相互关联的?

【问题讨论】:

    标签: c# asp.net .net model-binding


    【解决方案1】:

    我不是 MS 人,但我认为这就是答案 -

    1. System.Web.ModelBinding 用于 ASP.Net WebForms 应用程序

    http://msdn.microsoft.com/en-us/library/system.web.modelbinding(v=vs.110).aspx

    System.Web.ModelBinding 命名空间提供了使您能够 将数据对象绑定到 ASP.NET Web 窗体服务器控件。

    1. System.Web.Mvc 用于 ASP.Net MVC

    http://msdn.microsoft.com/en-us/library/system.web.mvc(v=vs.118).aspx

    System.Web.Mvc 命名空间包含的类和接口 支持用于创建的 ASP.NET 模型视图控制器 (MVC) 框架 网络应用程序。这个命名空间包括代表 控制器、控制器工厂、操作结果、视图、部分 视图、模型绑定器等等。

    1. System.Web.Http.ModelBinding 用于 ASP.Net Web API

    http://msdn.microsoft.com/en-us/library/system.web.http.modelbinding(v=vs.118).aspx

    此命名空间用于 Web API 2

    简而言之,这三个框架都是相互独立的。您应该记住,它们是可单独部署的框架。因此,有必要保留所有这些。如果您不需要特定的,则将其从引用的程序集中删除。它们不相互依赖。它们都来自不同的框架,它们都用于最适合的目的。

    这是 intellisense 或 resharper 之类的工具的功能,他们可以列出所有。但是你应该根据你的框架和你的需要选择合适的人。但通常它们都在 .net 框架完整版中可用,并且可能用于相同的工作。

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      相关资源
      最近更新 更多