Asp课后习题答案.docx
- 文档编号:23330005
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:15
- 大小:187.92KB
Asp课后习题答案.docx
《Asp课后习题答案.docx》由会员分享,可在线阅读,更多相关《Asp课后习题答案.docx(15页珍藏版)》请在冰豆网上搜索。
Asp课后习题答案
第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-各章布局示意","Index","ch01NavDemos",new{id="LayoutDemo"},null),并且区域内引用设定的布局页,代码类似为:
@{
Layout="~/Areas/Chapter01/Views/Shared/_ch01Layout.cshtml";
}。
第2章
1.什么是路由?
ASP.NETMVC是如何实现路由匹配的?
路由(Route)是指映射URL到处理程序的模式。
在ASP.NETMVC中,所有用户请求都要先经过ASP.NET路由系统,才能找到控制器中对应的操作方法(ActionMethod)。
即用户在览器的地址栏中输入网址并按回车键后,客户端就会向服务器发送HTTP请求,服务器则通过ASP.NET路由解析这一请求,从而找到对应的操作方法。
ASP.NETMVC定义了一个全局路由表(RouteTable),路由表中的每个Route对象都包含一个路由模板。
对于每个HTTP请求来说,URL路由系统都会遍历路由表找到与当前URL模式相匹配的Route对象,然后再利用它进一步解析出路由数据(RouteData)。
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对象。
【答】
publicViewResultIndex(stringid)
{
returnView(id);//返回用id指定的视图
}
publicPartialViewResultName(intuniversityid=0)
{
IList
returnPartialView(lstUniversityModel);
}
3.举例说明如何通过模型实现服务器验证。
【答】
利用模型进行服务器验证,主要是在模型中定义验证规则,在页面上输入模型中对应的内容时在服务端进行验证。
比如模型中定义:
publicclassMyUserModel
{
[Display(Name="用户Id")]
[Required(ErrorMessage="用户Id不能为空")]
[StringLength(3,MinimumLength=3,ErrorMessage="用户ID必须为3位")]
publicstringUserId{get;set;}
publicMyUserModel()
{
UserId="011";
}
}
}
页面上的代码如下:
@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开发人员提供一个最简单的设计形式,来解决不同设备访问时所带来的屏幕自适应问题。
2.利用jQuery获取和设置HTML页面元素的方法有哪些?
答:
利用jQuery提供的html方法、text方法以及val方法,可获取或设置HTML5元素的内容或选项的值。
3.如何用jQuery获取和设置元素的CSS属性?
答:
jQuery提供的attr方法用于获取或设置元素的特性(Attribute),prop方法用于获取或设置元素的属性(Property)。
第5章
1.简要回答GET方式和POST方式有什么区别。
答:
GET方式也叫GETMethod,用于向服务器发送GET请求,该方式通过URL来传递用户请求的数据,同时将参数以字符串的形式存放在向服务器提交的URL的后面。
POST方式也叫POSTMethod,该方式是将表单(form元素)内各字段名称及其内容放置在HTML的头文件(head元素)内传送给服务器,而不是通过URL来传递参数。
2.简要回答Html.BeginForm和Ajax.BeginForm有什么区别。
答:
Html.BeginForm方法用于生成form元素的开始标记,并默认使用POST方式提交数据,当用户提交表单时,由操作方法处理form的POST请求。
另外,如果Html.BeginForm方法不带参数,它就用同样的URL来处理GET和POST请求。
Ajax.BeginForm方法的用法和Html.BeginForm方法的用法相似,主要区别是前者为整页更新,后者为页面局部更新。
另外,在控制器中,操作方法返回的类型是PartialViewResult类型。
除了这些区别之外,其他用法和Html.BeginForm方法的用法相同。
3.简要回答表单的排列方式有哪些,这些排列方式分别适用于什么情况。
答:
表单控件的常见布局方式包括以下几种:
(1)让form内的每个label和input都单独占一行;
(2)组间纵向组内横向;
(3)水平居中排列;
(4)内联式横向排列,这种方式只适用于浏览器窗口大于等于768px宽度的情况。
如果窗口宽度较小(比如通过手机浏览器浏览该页面),此时表单内的每一组控件仍会垂直堆叠在一起;
(5)在导航栏内以内联式横向排列;
第6章
1.CSS有哪些定义方式,每种方式适用的场合是什么?
CSS有3种定义方式,分别是内联式、嵌入式和外部链接式。
1)内联式是指直接在网页的HTML元素内通过style特性设置元素的样式。
内联式适用于单独控制某个HTML元素样式的情况。
一般情况下,如果需要单独设置某个元素的样式,或者具有相同样式的元素比较少,可以采用内联式。
2)嵌入式是指在style元素内定义当前页面HTML元素的样式。
嵌入式适用于控制当前网页内具有相同样式的多个HTML元素。
3)外部链接式是指在扩展名为.css的样式表文件中单独保存样式的定义。
外部链接式适用于控制多个网页内具有相同样式的多个HTML元素。
2.CSS类选择器和id选择器的区别是什么?
CSS类选择器和id选择器的区别有以下几点:
相同点:
1)都可以用来选择一个HTML中的某一个元素。
2)使用时,被选择的HTML元素都需要定义一项属性。
不同点:
1)能够选择的元素数量不同:
类选择器可以用来选择一个HTML中的多个元素,而id选择器只能选择其中的一个。
2)使用的属性不同:
使用类选择器需要为HTML元素定义class属性,而使用id选择器则需要为HTML元素定义id属性。
3)一个HTML元素只能有一个id属性,但可以使用多个类。
3.简要回答下列问题,并用HTML5和CSS3代码举例说明。
(1)什么是流布局?
什么是坐标定位布局?
流布局(static)是页面中的元素按照从左到右、从上到下的顺序依次显示,各元素之间不重叠。
使用流布局时表示位置偏移量的top、left、right、bottom等CSS属性不起作用。
如果不设置元素的定位属性,默认为流布局方式。
坐标定位布局(fixed)是页面中的元素按照在浏览器窗口中的位置为绝对偏移量进行定位显示,元素在页面中显示的位置由left、top以及z-index属性决定,具有相同z-index值的元素可能会重叠。
当出现滚动条时,用坐标定位的元素不会随着滚动条滚动。
示例如下:
150px;height: 100px;"/> 200px;height: 100px;"/> 300px;height: 100px;"/> 150px;height: 100px;left: 100px;top: 50px;border-color: red;position: fixed;"/> 上面的代码中,前3个元素采用流布局,最后一个采用坐标定位布局,效果图如下 (2)什么是相对定位? 什么是绝对定位? 两者的区别是什么? 相对定位是指页面中的元素相对于正常流的偏移量进行定位。 元素的正常流是指该元素应用此样式之前的位置。 元素在页中显示的位置由left、top以及z-index属性决定,具有相同z-index值的元素不会重叠。 绝对定位是指页面中的元素相对于其父元素的偏移量进行定位。 偏移量由元素的左上角(left,top)、右下角(right,bottom)、宽和高(width,height)以及z-index属性决定,具有相同z-index值的元素可能会重叠。 示例如下: 100px;height: 100px;border: 1pxsolid;">div1
100px;height: 100px;border: 1pxsolid;position: relative;top: -50px;left: 60px;"> div2 100px;height: 100px;border: 1pxsolid;position: absolute;top: 40px;left: 60px;"> div3