1. 谈谈你对MVC和三层架构的理解。
MVC即模型、视图、控制器,模型表示业务数据及业务处理,用来封装数据及行为;视图是用户看到并与之交互的界面;控制器接受用户输入并调用模型和视图去完成用户的请求。使用MVC有利于关注点分离,自动化UI测试成为了可能。
三层架构即表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层通俗讲就是展现给用户的界面,业务逻辑层即针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层:该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
2. 在MVC中如何保持Sessions?
可使用tempdata、viewdata、viewbag三种方式。其中tempdata:在不同的控制器或动作间转换时保持数据。另外,进行页面转向时,tempdata可以保持数据,它是一个内部的Session变量。Viewdata:可以在控制器和视图间保持数据。Viewbag:它是视图数据的动态包装,使用viewbag不需要类型转换,它使用的是内部动态关键词。
3. MVC中如何做输入验证?
在M层使用数据模型的属性标签形如[Required],在C层使用ModelState.IsValid属性检查数据是否正确,也可在C层使用javascript进行数据验证。
4. 已经有了ASPX,为什么还要Razor?哪个更好?