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

简介: 在前两篇文章中,我们了解到了ASP.NET Web Forms 4.5四个新特性:强类型数据控件和Bundling、针对HTML5的更新和Unobtrusive Validation。 在介绍强类型控件的时候只是简单介绍了下它具有ItemType的属性,可以设置强类型值进行绑定,如果只是引入了这个属性,那么有点像语法糖,没什么实际意义。

在前两篇文章中,我们了解到了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属性后,就需要接受IEnumerable<T>或者IQueryable<T>类型的对象,T与前面的ItemType一致。

如我们这样设置一个GridView的配置。

 

 1  < form  id ="form1"  runat ="server" >
 2      < div >
 3          < asp:GridView  ID ="GridView_Users"  runat ="server"  ItemType ="ModelBinding.Users"
 4              DataKeyNames ="UserID"  SelectMethod ="GetUsers"
 5              AutoGenerateColumns ="False" >
 6              < Columns >
 7                  < asp:BoundField  DataField ="UserID"  HeaderText ="User ID"   />
 8                  < asp:BoundField  DataField ="UserName"  HeaderText ="User Name"   />
 9                  < asp:BoundField  DataField ="UserEmail"  HeaderText ="Email"   />
10              </ Columns >
11          </ asp:GridView >
12          < asp:ValidationSummary  ID ="ValidationSummary_UserEdit"  runat ="server"  ShowModelStateErrors ="true"   />
13      </ div >
14  </ form >

后台绑定数据。

1  public IQueryable<Users> GetUsers()
2 {
3     List<Users> list =  new List<Users>();
4     list.Add( new Users() { UserID =  1, UserName =  " Parry ", UserEmail =  " Parry@cnblogs.com " });
5     list.Add( new Users() { UserID =  2, UserName =  " Spiderman ", UserEmail =  " Spiderman@cnblogs.com " });
6     list.Add( new Users() { UserID =  3, UserName =  " Superman ", UserEmail =  " PaSupermanrry@cnblogs.com " });
7     list.Add( new Users() { UserID =  4, UserName =  " Batman ", UserEmail =  " Batman@cnblogs.com " });
8      return list.AsQueryable<Users>();
9 }

页面显示。

当然,控件还支持UpdateMethod和DeleteMethod分别进行修改和删除操作。

需要注意的是,在后台定义的SelectMethod中也是可以定义参数属性的。

public IQueryable<Users> GetUsers([Control] int? userID)

还支持Form、QueryString、Cookies、Url这些属性。

整体感觉这部分是ASP.NET Web Forms 4.5变化较大,也是更像MVC的地方。微软将EF,强类型控件,Model Binding串联起来,定义了一个规整的后台绑定的方法和流程。

更详细的介绍可以参考ScottGu的系列文章:Web Forms Model Binding


作者:Parry
出处:http://www.cnblogs.com/parry/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章
|
2月前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
75 5
|
开发框架 .NET API
ASP.NET Core Binding source
Binding source Attributes借助 binding source attributes 可以将请求传递的数据传递给 api,详细的attribute 如下图。但 在 api 项目下的 标识了 apicontroller 的controller下,binding source attributes 的规则 有所改变 HttpHEADhead 也是一种http 请求方法,他...
41 0
ASP.NET Core Binding source
|
开发框架 JavaScript 前端开发
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
247 0
【浅谈ASP.NET】——WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
|
开发框架 Oracle 前端开发
Oracle+ASP.Net Core Web API在云服务器上的部署
暑假数据库课程设计,我们小组选择vue+web api+Oracle开发网站,需要云服务器部署项目,对比后选择了阿里云服务器,并选择飞天加速计划——高校学生在家实践活动,一番摸索后实现了oracle数据库的建立与web api的发布,目前使用感觉良好。
Oracle+ASP.Net Core Web API在云服务器上的部署
|
SQL 开发框架 弹性计算
Asp.Net Web 项目部署到阿里云 Windows版本服务器
Asp.Net Web 项目部署到阿里云 Windows版本服务器 前言:网上Asp.Net Web 项目部署到阿里云 Windows版本服务器的说法不一,最后参考多方上传后终于部署成功,写此文章总结一下网上的知识和自己的部署经验,以防自己忘记 工具 1. Visual Stuio 2019 2. sql server2019 3. 阿里云服务器 ECS 4. windows 11家庭版
|
开发框架 JavaScript 前端开发
ASP.NET Core 编码、web编码、网页编码System.Text.Encodings.Web
ASP.NET Core 编码、web编码、网页编码System.Text.Encodings.Web
234 0
ASP.NET Core 编码、web编码、网页编码System.Text.Encodings.Web
|
存储 开发框架 NoSQL
ASP.NET Core+Quartz.Net实现web定时任务
此处我们的项目使用稍复杂的Quartz.net实现web定时任务。
ASP.NET Core+Quartz.Net实现web定时任务
|
开发框架 前端开发 .NET
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(7)
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(7)
163 0
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(7)
|
开发框架 前端开发 .NET
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(6)
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(6)
157 0
ASP.NET MVC (四、ASP.NET Web API应用程序与跨域操作)(6)