asp.net面试题总结1(未完待续。。。。)
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.net和asp.net mvc的关系
答:
asp.net mvc是asp.net的子集
从mvc的核心命名空间system.web.mvc就能看出,因为system.web是asp.net的核心命名空间。
asp.net mvc是在核心asp.net基础之上构建的。
具体体现在以下方面
(1)asp.net mvc依赖于httphandler
关于请求是怎么进入控制器的,其实就是用到了httphandler
(2)session、cookie、cache和application这些asp.net的对象保存机制在mvc中依然是需要用到的
(3)httpcontext、request、response、server对象在mvc中仍然可以使用,在controller中通过智能感知的形式很容易得到这些对象
(未完待续。。。。)