资讯动态

ASP.NET Web Forms 4.5的新特性(三):Model Binding

发布时间:2026/8/3 19:10:05 来源:尧图企业网站定制
在前两篇文章中我们了解到了ASP.NET Web Forms 4.5四个新特性强类型数据控件和Bundling、针对HTML5的更新和Unobtrusive Validation。在介绍强类型控件的时候只是简单介绍了下它具有ItemType的属性可以设置强类型值进行绑定如果只是引入了这个属性那么有点像语法糖没什么实际意义。其实许多园友也发现了在ASP.NET Web Forms 4.5中引入了许多MVC的特性而Model Binding则是更加像MVC的一个特性了。Model Binding如果用过ObjectDataSource控件肯定对其SelectMethod有印象在ASP.NET Web Forms 4.5中微软直接将此方法移到了强类型控件上。将之前DataBind方法直接替换成了更方便的SelectMethod方法具体参见这里。SelectMethod方法接受IEnumerable或者IQueryable类型的对象如果使用了前面介绍的ItemType属性后就需要接受IEnumerableT或者IQueryableT类型的对象T与前面的ItemType一致。如我们这样设置一个GridView的配置。1formidform1runatserver2div3asp:GridViewIDGridView_UsersrunatserverItemTypeModelBinding.Users4DataKeyNamesUserIDSelectMethodGetUsers5AutoGenerateColumnsFalse6Columns7asp:BoundFieldDataFieldUserIDHeaderTextUser ID/8asp:BoundFieldDataFieldUserNameHeaderTextUser Name/9asp:BoundFieldDataFieldUserEmailHeaderTextEmail/10/Columns11/asp:GridView12asp:ValidationSummaryIDValidationSummary_UserEditrunatserverShowModelStateErrorstrue/13/div14/form后台绑定数据。1publicIQueryableUsers GetUsers()2{3ListUsers list newListUsers();4list.Add(newUsers() { UserID 1, UserName Parry, UserEmail Parrycnblogs.com});5list.Add(newUsers() { UserID 2, UserName Spiderman, UserEmail Spidermancnblogs.com});6list.Add(newUsers() { UserID 3, UserName Superman, UserEmail PaSupermanrrycnblogs.com});7list.Add(newUsers() { UserID 4, UserName Batman, UserEmail Batmancnblogs.com});8returnlist.AsQueryableUsers();9}页面显示。当然控件还支持UpdateMethod和DeleteMethod分别进行修改和删除操作。需要注意的是在后台定义的SelectMethod中也是可以定义参数属性的。publicIQueryableUsers GetUsers([Control]int? userID)还支持Form、QueryString、Cookies、Url这些属性。整体感觉这部分是ASP.NET Web Forms 4.5变化较大也是更像MVC的地方。微软将EF强类型控件Model Binding串联起来定义了一个规整的后台绑定的方法和流程。更详细的介绍可以参考ScottGu的系列文章Web Forms Model Binding。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价