. net模型绑定

本文关键字:绑定 模型 net | 更新日期: 2023-09-27 18:08:17

我试图在我的ASP中创建自定义模型绑定器。NET MVC 4项目。但是我被IModelBinder接口困住了。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);

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

. net模型绑定

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

  1. 包含。ModelBinding用于ASP。Net WebForms应用程序

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

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

  • 包含。Mvc用于ASP。净MVC
  • http://msdn.microsoft.com/en-us/library/system.web.mvc (v = vs.118) . aspx

    System.Web.Mvc命名空间包含的类和接口支持ASP。用于创建的模型视图控制器(MVC)框架Web应用程序。此命名空间包括表示的类控制器,控制器工厂,动作结果,视图,局部视图,模型绑定,以及更多。

  • 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

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

    智能感知resharper类工具的特性是它们可以列出所有。但是您应该根据您的框架和您的需求选择正确的。但通常它们都可以在。net框架的完整版本中使用,并且可能提供相同的工作。