.NET MVC 的自定义模型属性别名绑定的使用.doc

.NET MVC 的自定义模型属性别名绑定的使用.doc

ID:55894483

大小:96.50 KB

页数:9页

时间:2020-06-13

.NET MVC 的自定义模型属性别名绑定的使用.doc_第1页
.NET MVC 的自定义模型属性别名绑定的使用.doc_第2页
.NET MVC 的自定义模型属性别名绑定的使用.doc_第3页
.NET MVC 的自定义模型属性别名绑定的使用.doc_第4页
.NET MVC 的自定义模型属性别名绑定的使用.doc_第5页
资源描述:

《.NET MVC 的自定义模型属性别名绑定的使用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、最近在研究 ASP.NETMVC模型绑定,发现 DefaultModelBinder有一个弊端,就是无法实现对浏览器请求参数的自定义,最初的想法是想为实体模型的属性设置特性(Attribute),然后通过取得设置的特性值对属性进行赋值,研究了好久MVC源码之后发现可以通过重写 DefaultModelBinder的 BindProperty方法可以达到预期的目的。ASP.NETMVC中有一个自定义模型绑定特性 CustomModelBinderAttribute,打算通过重写 CustomModelBinderAttribute 来对实体属性进行出来,实现如下:[Att

2、ributeUsageAttribute(AttributeTargets.Class

3、AttributeTargets.Struct

4、AttributeTargets.Enum

5、AttributeTargets.Interface

6、AttributeTargets.Parameter,AllowMultiple=false,    Inherited=false)]publicabstractclassCustomModelBinderAttribute:Attribute但是由于 CustomModelBinderAttribute不支持对属性设置特性,所以只好继承

7、 Attribute类重新写一个特性,代码如下:///

///表示一个调用自定义模型联编程序的特性。///[AttributeUsage(ValidTargets,AllowMultiple=false,Inherited=false)]publicclassPropertyModelBinderAttribute:Attribute{    ///    ///指定此属性可以应用特性的应用程序元素。    ///    internalconstAttributeTargetsValidTarg

8、ets=AttributeTargets.Field

9、AttributeTargets.Enum

10、AttributeTargets.Property

11、AttributeTargets.Parameter;    ///

    ///声明属性名称。    ///    privatestring_propertyName=string.Empty;     ///    ///获取或设置属性别名。    ///    publicstringPropertyName    {        get

12、{return_propertyName;}    }     ///

    ///使用指定的属性别名。    ///    ///指定的属性别名。    publicPropertyModelBinderAttribute(stringpropertyName)    {        _propertyName=propertyName;    }     ///    ///检索关联的模型联编程序。。    ///    

13、///对实现System.Web.Mvc.IModelBinder接口的对象的引用。    publicIModelBinderGetBinder()    {        returnnewPropertyModelBinder();    }这样就可以在实体模型的属性上设置别名了。///

///表示一个城市筛选实体对象模型。///[ModelBinder(typeof(PropertyModelBinder))]publicclassCityFilteringModel:BaseEntity

14、Model{     ///

    ///获取或设置城市英文名称。    ///    publicstringCityEnglishName{get;set;}    ///    ///获取或设置城市编号。    ///    [PropertyModelBinder("cid")]    publicintCityId{get;set;}    ///    ///获取或设置城市名称。    ///    [Proper

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。