.NET MVC 实例教程(一)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。
作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/9382781

一、什么是.NET的 MVC模式

MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。

那么MVC模式和我们熟悉的WebForm模式有什么不同呢?他的各个部分又是怎样分工的呢?

我们先来看一下普通的WebForm模式下,我们请求一个例如http://www.51mvc.com/blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了),然后再由index.aspx页面来呈现给用户。

也就是一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。

但是,对于MVC模式,这是怎样的一个过程呢?

  1. 当第一个请求从客户端发起的时候,首先执行的是Global.asax中的Application_Start()方法来完成一些初始化工作,其中重要的一步是RegisterRoutes方法,这个方法指定了如何将url映射到具体的方法上,稍后详解。

  2. 根据第一步中指定的映射表生成一个RouteDate个对象,利用这个对象来创建一个RequestContext对象。

  3. MvcRouteHandler创建一个MvcHandler,并将RequestContext对象传给MvcHandler。

  4. MvcHandler对象利用RequestContext对象确定一个IControllerFactory对象来创建Controller对象。

  5. MvcHandler对象调用Controller对象的Execute()方法。

  6. Controller的ControolerActionInvoker对象决定调用controller的哪个具体的action方法。

  7. Action方法接受用户参数,执行方法,返回一个Result类型的对象。

二、.NET MVC 和JavaEE 的MVC 有相同点和不同点?

   MVC是一个设计模式,M(Model)指数、V (View) 视图、C(Controller); 它跟你使用的语言无关,是一种设计模式,可以理解就是一种思想 一种套路。

优点:降低代码的重复、降低维护带来的复杂性,方便扩展、修改,对任务分工也会有好处。  低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、有利于软件工程化管理;

不同点:JavaEE 的MVC 已经很成熟,运用很广泛,这种思想已经运用于很多框架当中。

当用户发送请求来之后,首先由核心控制器拦截,然后根据配置文件的配置去找到对应的控制处理器, 执行已经分配好的action方法,完了之后 返回一个逻辑路径名称,系统会根据这个逻辑名称做出相应的跳转。

但是.NET 的MVC 是 由UrlRoutingModule来把用户发送的请求URL定位到Controller中去的。而对于URL会被路由到哪一个Controller中去,这些我们是完全可以自己定义的。在Global.asax可以看到Route规则的明细。然后会找到controller 以及里面需要执行的action方法 ,之后返回View(), 最后回去View文件夹下找到对应的显示页面展示。

三、.NET MVC需要准备的条件 

VS2010以上版本。(我之前用VS2008 结果发现创建mvc的入口都没有)

MVC3的安装包,地址:http://download.csdn.net/detail/ch656409110/5783657

四、创建一个MVC项目的解决方案

安装完成MVC3后,新建项目-->ASP.NET MVC3 Web Application,如下图所示:


2、点击"OK"后,出现如下图所示:

选择”Internet Apliication“ 这个,里面有一个非常好的demo 可以看。

然后可以看到以MVC解决方案了:



在根目录中

Content 里面放的是css样式;

Conntrollers里面放的是控制器;

Models里面放的是模型;

Scripts里面放的是js脚本;

Views里面放的是 对应的cshtml页面;

Global.asax里面 记录的是核心的配置,以及注册已经定义的route规则;


现在,可以按F5调试 运行看看了。








  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值