即将到来的ASP.NET MVC RC中的一些新特性

简介:

Scott昨天终于在其blog上放了一篇东西出来(这家伙现在产能严重不足),看了一下有些欣喜,俺就在这说一下,希望对大家有所帮助。

俺还是视图,但是俺终于甩掉了Code-Behind文件!

这太不容易了,令人诟病的不伦不类的代码后置终于被枪毙了。微软在听取了许多的社区反馈后决定对视图作出这个更改。默认情况下,我们将不会看到那个别扭的.cs/.vb文件伴屁颠屁颠的跟在本来很单纯的view后面同时出现。这个改动干掉了很多的没用的代码后置文件(当然,项目越大越明显),更重要的是它使得视图只专注于它该做的事情--呈现。

其实这很囧的,其实原本就应该是这样。(看图,干净多了的解决方案)

 sshot-1

现在的Beta版中,俺们只能通过使用CLR泛型更改视图的继承属性来剔除代码后置。不过这种方式如果微软不说你就很难发现,而且的确是有些晦涩。。。现在,在Asp.Net MVC RC中我们已经可以在直接使用c#/vb.net语法来更改视图的继承属性了。

image

 

不使用Code-Behind的另外一个好处就是当我们添加一个视图到当前项目后立即就可以获得在视图中的代码智能感知。而在Beta及更早的版本中我们不得不在添加一个视图之后重新编译一次。(经常有朋友问这个问题“我按Html.怎么不出现任何Helper的提示呢”,其实就是这个原因)。

视图可以使用顶级的模型属性(Model Property)

俺们以前经常使用ViewData.Model

image

现在我们可以直接这样

image

效果都是一样一样一样的。唯一的好处就是少打了八个字母和一个点。

HtmlHelper及AjaxHelper中可以使用Lambda表达式与Model通信

在beta中,由于HtmlHelper及AjaxHelper并未在其签名中暴露model type,所以俺们要使用Lambda扩展Helper与Model通信就不得不通过ViewPage<TModel>基类。不过在RC版中这个问题得到了改善。此次微软在ViewPage<TModel>中暴露了两个新的类型:HtmlHepler<TModel>和AjaxHelper<TModel>。从今以后俺们就可以在于Model通信的时候通过Lambda表达式构建强类型的HtmlHelper和AjaxHelper扩展方法啦。

接下来是Scott提供的一个简单的强类型TextBox helper的例子

image

然后就可以直接在视图中这么用啦,而且这么做也就意味着还将得到vs的代码智能感知的支持哦。

image

其他

文章中还提及了RC中的很多新的改进,比如IDataErrorInfo、新提供的FileResult 和 JavaScriptResult ActionResult类型、内置的JQuery智能感知支持、可扩展性的提升以及即使不提大家也晓得的Bug修复。

还有一些减时增产的内容这里也就不说了,有兴趣的可以去他Blog里面找,链接上面给出来了。














本文转自紫色永恒51CTO博客,原文链接:http://www.cnblogs.com/024hi/archive/2008/12/20/1358802.html ,如需转载请自行联系原作者

相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
41 0
|
1月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
29 0
|
1月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
123 0
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
52 0
|
8月前
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(完:内附源码)
经过一段时间的准备,【ASP.NET Core MVC开发实战之商城系统】已经完成,目前代码已开发完成,先将全部内容整理分享,如有不足之处,还请指正。
107 0
|
前端开发 数据安全/隐私保护
net MVC中的模型绑定、验证以及ModelState
net MVC中的模型绑定、验证以及ModelState 模型绑定 模型绑定应该很容易理解,就是传递过来的数据,创建对应的model并把数据赋予model的属性,这样model的字段就有值了。
1653 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
115 0