ASP.NET MVC 习题解答
第1章
1.简要叙述Web窗体编程模型与MVC编程模型的特点和优缺点。
【答】
Web窗体编程模型的最大优势是易理解、上手快,非常适合利用它内置的Web服务器控件开发Web应用程序。但是它还有最突出的问题,主要体现在以下两个方面。
新版本的Web窗体为了兼容旧版本,使Web服务器控件封装的功能变得越来越臃肿,这在一定程度上影响了程序运行的效率。另外,HTML5、CSS3以及各种优秀开源架构的推出,也让【Web窗体】提供的Web服务器控件变得越来越无用。 随着大型Web应用程序项目的分工越来越细,【Web窗体】编程模型使大型Web项目的单元测试工作变得非常棘手。
在这种情况下,微软又推出了开源的、基于测试驱动的【MVC】编程模型。 MVC编程模型的特点 l 任务分离 l 基于测试驱动的开发 l 对HTML5和CSS3的操控能力高 MVC编程模型的优点:MVC设计模式可以方便开发人员分工协作,提高开发效率,增强程序的可维护性和拓展性...而且还利用Controller将Model与View分离,降低它们之间的耦合度. MVC编程模型的缺点:增加了系统结构和实现的复杂性。视图与控制器间的过于紧密的连接视图对模型数据的低效率访问。目前,一般高级的界面工具或构造器不支持MVC模式。
2.简要回答什么是区域,区域的作用是什么?如何从主页导航到区域?
【答】
区域是将大型Web应用程序划分为各自独立的模块。 区域的作用是既可以让模块功能各自独立,又可以让这些不同的模块共享相同的资源(如图像文件、.css文件、js文件等),同时还能在某个模块中调用其他模块的功能。
从主页导航到区域可以使用Html.ActionLink方法,并用类似的代码:@Html.ActionLink(\例1-各章布局示意\,并且区域内引用设定的布局页,代码类似为: @{
Layout = \/Views/Shared/_ch01Layout.cshtml\}。
第2章
1.什么是路由?ASP.NET MVC是如何实现路由匹配的?
路由(Route)是指映射URL到处理程序的模式。在ASP.NET MVC中,所有用户请求都要先经过ASP.NET路由系统,才能找到控制器中对应的操作方法(Action Method)。即用户在览器的地址栏中输入网址并按回车键后,客户端就会向服务器发送HTTP请求,服务器则通过ASP.NET路由解析这一请求,从而找到对应的操作方法。 ASP.NET MVC定义了一个全局路由表(RouteTable),路由表中的每个Route对象都包含一个路由模板。对于每个HTTP请求来说,URL路由系统都会遍历路由表找到与当前URL模式相匹配的Route对象,然后再利用它进一步解析出路由数据(RouteData)。
1 / 9
ASP.NET MVC 习题解答
2.Razor视图引擎有什么特点?
Razor视图引擎具有如下特点。
(1)混合编程。利用Razor视图引擎,可以直接在视图(包括视图页、布局页、分部页等)中混合使用C#代码和HTML、CSS以及JavaScript代码。
(2)语法简洁。利用Razor视图引擎,在视图文件(扩展名为.cshtml的文件)中,只需要用一个字符“@”就可以表示C#的语句块或者C#的内联表达式,这与jQuery用一个“$”符号来调用JavaScript脚本有异曲同工之妙,唯一的区别是C#代码是在服务器上执行,jQuery代码是在客户端执行。
(3)与.NET框架的融合。利用Razor视图引擎,可在视图中直接调用ASP.NET框架的所有功能以及所有.NET类库,而且在VS2013开发环境下键入HTML、CSS、脚本以及C#代码时,都具有丰富的智能提示和语法着色。
(4)有效防止脚本攻击。Razor视图引擎默认自动对网页中输入的字符串进行HTML编码,以防止客户端脚本攻击。
3.什么是Bootstrap,Bootstrap与jQuery是什么关系?
Bootstrap是Twitter公司的开发人员研制的一种开源的、移动设备优先的自适应Web前端开发框架,该架构在jQuery的基础上,实现了移动设备优先的自适应界面显示,其目标是为Web开发人员提供一个最简单的设计形式,来解决不同设备访问时所带来的屏幕自适应问题。
jQuery是一种开源的用JavaScript编写的库函数。而Bootstrap是在jQuery的基础上开发的Web前端开发框架,其本质就是利用CSS和JavaScript以及jQuery代码,为Web开发人员提供不同的自适应界面样式控制。
第3章
1.简要说明ViewBag和ViewData的主要区别和联系。
【答】
ViewData属性是一个System.Web.Mvc.ViewDataDictionary对象,这是一个不区分大小写的由“键/值”对组成的字典集合。ViewBag属性是ViewData属性的另一种表示形式,该属性返回的是一种动态数据类型(dynamic)。ViewBag和ViewData在功能上的作用完全相同,两者都是利用ViewDataDictionary对象传递数据到视图,使用时任选其中之一即可。
有一种情况除外,就是当“键”包含空格等特殊字符时(比如用英文人名作为“键”时,中间会有空格),此时只能用ViewData属性来实现。
一般在控制器中通过ViewBag定义要传递给视图的数据,在视图(Views)中再通过ViewBag获取并呈现这些数据。
2.举例说明如何在控制器中返回ViewResult对象和PartialViewResult对象。
【答】
public ViewResult Index(string id) {
return View(id); //返回用id指定的视图 }
2 / 9
ASP.NET MVC 习题解答
public PartialViewResult Name(int universityid = 0) {
IList
3.举例说明如何通过模型实现服务器验证。
【答】
利用模型进行服务器验证,主要是在模型中定义验证规则,在页面上输入模型中对应的内容时在服务端进行验证。 比如模型中定义:
public class MyUserModel {
[Display(Name = \用户Id\
[Required(ErrorMessage = \用户Id不能为空\
[StringLength(3, MinimumLength = 3, ErrorMessage = \用户ID必须为3位\ public string UserId { get; set; }
public MyUserModel() {
UserId = \ } } }
页面上的代码如下:
@Html.LabelFor(m => m.UserId)
@Html.ValidationMessageFor(m => m.UserId)
第4章
1.jQuery与JavaScript和Bootstrap是什么关系?
答:jQuery是一种免费的开源JavaScript库,这些库函数也是用JavaScript代码来编写的,但是用jQuery提供的语法编写客户端代码更加简洁、直观,能大大缩短Web项目的开发周期,jQuery还自动处理了各种不同浏览器以及同一浏览器不同版本的兼容性问题。Bootstrap是Twitter公司的开发人员研制的一种开源的、移动设备优先的自适应Web前端开发框架,该架构在jQuery的基础上,实现了移动设备优先的自适应界面显示,其目标是为Web开发人员提供一个最简单的设计形式,来解决不同设备访问时所带来的屏幕自适应问题。
3 / 9