asp.net面试题总结1(未完待续。。。。)
1、MVC中的TempData\ViewBag\ViewData区别?
答:页面对象传值,有这三种对象可以传。
Temp:临时的
Bag:袋子
(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中通过智能感知的形式很容易得到这些对象
3、阐述下MVC框架的机制,各个模块的作用?
答:

1、UrlRoutingModule模块截获请求,从路由表中得到该URL对应的RouteData
2、RouteData+URL封装成一个IHttpContext对象
3、IHttpContext对象从RouteData中得到Controller名字,根据名字反射创建Controller对象
4、Controller对象执行对应的Action方法,并返回View()
一:用法和区别
drop:drop table 表名
删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。
truncate (清空表中的数据):truncate table 表名
删除内容、释放空间但不删除定义(也就是保留表的数据结构)。与drop不同的是,只是清空表数据而已。
truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。
delete:delete from 表名 (where 列名 = 值)
与truncate类似,delete也只删除内容、释放空间但不删除定义;但是delete即可以对行数据进行删除,也可以对整表数据进行删除。
二:注意
1.delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。
2.执行速度一般来说:drop>truncate>delete
3.delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
4.truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发trigger。
5.truncate语句执行以后,id标识列还是按顺序排列,保持连续;而delete语句执行后,ID标识列不连续
6、描述EF和ado.net的优缺点?
答:
EF 优点:(1)面向对象编程
(2)代码量少,开发方便
缺点:(1)有一定的性能损耗
(2)优化的时候不灵活,不如直接写sql
ado.net 优点:(1)直接操作数据库,速度快
(2)优化sql灵活
缺点:(1)代码量大,自己处理的事情多
7、MVC的Filter有几种?分别是什么?主要特点是什么?
8、阐述下数据库的三大范式?
答:
9、怎么理解线程池,他的优缺点有哪些?
答: 线程池是用来存放线程的对象池。线程池的目的就是因为创建一个线程代价比较高,因此我们使用线程池来复用线程。
优点:
(1)减少创建线程的开销,线程能复用
缺点:
(1)不能设置池中线程的优先级和名称
(2)线程池中的所有线程都是后台线程。如果进程的所有前台线程都结束了,所有的后台线程就会停止。不能把入池的线程改为前台线程
10、视图有更新操作,你不知道吗?
答:
(未完待续。。。。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构