1、mvc中的tempdata\viewbag\viewdata区别?

  答:页面对象传值,有这三种对象可以传。

  

  (1)  tempdata  保存在session中,controller每次执行请求的时候,会从session中先获取 tempdata,而后清除session,获取完tempdata数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除。具体代码层面,tempdata获取过程是通过sessionstatetempdataprovider.loadtempdata方法从 controllercontext的session中读取数据,而后清除session,故tempdata只能跨controller传递一次。

 (2) viewbag和viewdata只在当前action中有效,等同于view

 (3)viewdata和viewbag 中的值可以互相访问,因为viewbag的实现中包含了viewdata

 

2、asp.netasp.net mvc的关系

 答:

 asp.net mvcasp.net的子集

     mvc的核心命名空间system.web.mvc就能看出,因为system.webasp.net的核心命名空间。

   asp.net mvc是在核心asp.net基础之上构建的。

   具体体现在以下方面

(1)asp.net mvc依赖于httphandler

     关于请求是怎么进入控制器的,其实就是用到了httphandler

(2)sessioncookiecacheapplication这些asp.net的对象保存机制在mvc中依然是需要用到的

(3)httpcontextrequestresponseserver对象在mvc中仍然可以使用,在controller中通过智能感知的形式很容易得到这些对象

 

(未完待续。。。。)