Asp.net MVC 学习心得

本文分享了作者在学习ASP.NET MVC过程中的心得,强调了Controller与View的关系变化,解释了在IIS中部署MVC应用的注意事项。文章还讨论了MVC模式对HTML代码的优化以及摒弃WebForm设计器带来的挑战。最后提到了ASP.NET MVC3的数据访问和业务逻辑设计改进,特别是Entity Framework和数据验证的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    asp.net mvc 学习中,第一个要理解的是 Controller 与View之间的关系。与普通的asp.net 工程不一样,浏览器中的Url访问的不再是一个个实际存在的页面,而是Controller中的一个个Action。Controller获得Http请求之后,进行处理,完毕之后将数据交换给视图来显示。

 

    因此在IIS6与IIS5中进行部署的时候,必须要添加一个通配符的HttpHandler,否则IIS无法处理MVC的Web请求;

 

    MVC最开始版本的视图引擎依然支持CodeBehind,居然还能放Server Control到页面中,其实这已经违背了MVC的设计初衷,所以在asp.net mvc2中将这个干掉了。

 

    这样的设计有利有弊,好处就是输出的HTML代码更干净,摆脱了一大顿asp.net输出的额外代码,例如ViewState,很长的Control ID之类。使得输出的HTML代码Size会大大减少,使得页面在传输与显示时更为高效。当然这也是MVC模式必须做到的,Model-Controller-View分离的原则。

 

    缺点就是没有了那些一拖一拉就能完成的服务器端控件,也没了可视化的WebForm设计器,需要完全手工的输入代码来完成视图的设计,还要自行设计数据交换及其处理细节。尤其是之前只有Aspx这一个视图引擎时,编写视图时一个很累的工作,Razor的引入,使得视图的设计轻松愉快了很多。作为一个从CGI开始学习动态Web编程的人来说,纯手工的HTML代码输出倒难不倒我,反而是我最期望得到的。

 

  在MVC中如何设计整个系统,例如说数据访问、业务逻辑之类。在Asp.net官方网站上给出过几个例子。

 

    第一个版本的例子,采用的Linq To SQL作为Entity类,用于访问数据库,在此之上使用Repository模式进行封装,Repository之上定义了一个Service服务层用于处理业务逻辑。但是这个设计中,没有很好的给出Model该如何设计。

 

   直到asp.net mvc3,我觉得才给出了一个比较好的设计,数据访问采用Entity Framework,Entity直接作为Repository,在此之上定义Service层来包含业务逻辑,视图Model作为Controller与View之间的数据传输格式。在定义Model的时候,使用Data Annotation来定义其中的属性,然后就可以很方便的使用HtmlHelper来生成表单,并且进行数据合法性验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值