传统WebForm网站和MVC网站运行机制对比

   先上图看对比:

    

 

  一、运行机制

   当我们访问一个网站的时候,浏览器和服务器都是做了哪些动作呢

 

  (一)WebForm网站运行机制

   假设为:www.baidu.com/index.aspx

  1、Http请求(物理地址:index.aspx)

  ①发送请求

    浏览器向服务器发送请求报文,此时由IIS虚拟目录接受。(通过配置过IIS,把网站挂载在服务器上,通过访问虚拟目录的方式访问网站的。)

  ②转交请求

    服务器端的IIS软件接收到请求后,把请求交给.NET FrameWork进行处理

  ③创建页面类对象

    .NET FrameWork根据请求的地址index.aspx,会创建对应的index_aspx类的对象(页面对象)。

  2、返回给浏览器

   ①转交回复

   通过IIS传输出给浏览器,要输出的html元素或其他内容(html+js+css等)

   ②解析为图形界面

   器解析html代码,并翻译为图形化界面

 

  (二)MVC网站的运行机制

  假设为:www.baidu.com/news/index

  1、Http请求(逻辑地址:news/index)

    ①发送请求(news/index)

    ②转交请求(同上)

    ③创建类对象+方法

    .NET FrameWork根据路由配置,解析URL,并创建news类的对象,并调用对象的index方法。通过View方法加载视图,然后访问视图文件夹下的index.cshtml 

  2、返回给浏览器(同上)

 

  二、区别

  1、请求方式

  ①WebForm:index.aspx页面

   www.baidu.com/index.aspx

    在用户看来请求的是index.aspx页面,实际上服务器端运行的是index.aspx对应的类(前台页面类的对象),先调用ProcessRequest方法,然后调Page_Load方法

  ②MVC:类名+方法名

   www.baidu.com/news/index

  2、服务器端创建对象

  ①webForm:页面类对象

   服务器端创建index.asp的前台页面类的对象‘index.aspx’

  ②MVC:类对象

   MVC:创建news类对象,并调用Index方法。

    .NET FrameWork根据路由配置,解析URL,并创建news类的对象,并调用对象的index方法。通过View方法加载视图,然后访问视图文件夹下的index.cshtml

  3、传值方式

  ①WebForm:CodeBehand

   前台-->后台

    前台页面继承于后台页面,可以通过<%...%>方式,访问后台页面公开的属性(强耦合)

   后台-->前台

    包含runat=Server控件的前台页面,都会以变量的方式存在于后台类中,供后台调用

 MVC: ViewData

    把ViewData当作一个中间类在Controller和View之间传输数据。好处:强类型视图。

 

   三、总结

相同点:WebForm和MVC都是基于ASP.NET管道模型上的两种不同的开发方式。

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值