Asp课后习题答案.docx

上传人:b****3 文档编号:13206974 上传时间:2023-06-12 格式:DOCX 页数:15 大小:188.80KB
下载 相关 举报
Asp课后习题答案.docx_第1页
第1页 / 共15页
Asp课后习题答案.docx_第2页
第2页 / 共15页
Asp课后习题答案.docx_第3页
第3页 / 共15页
Asp课后习题答案.docx_第4页
第4页 / 共15页
Asp课后习题答案.docx_第5页
第5页 / 共15页
Asp课后习题答案.docx_第6页
第6页 / 共15页
Asp课后习题答案.docx_第7页
第7页 / 共15页
Asp课后习题答案.docx_第8页
第8页 / 共15页
Asp课后习题答案.docx_第9页
第9页 / 共15页
Asp课后习题答案.docx_第10页
第10页 / 共15页
Asp课后习题答案.docx_第11页
第11页 / 共15页
Asp课后习题答案.docx_第12页
第12页 / 共15页
Asp课后习题答案.docx_第13页
第13页 / 共15页
Asp课后习题答案.docx_第14页
第14页 / 共15页
Asp课后习题答案.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Asp课后习题答案.docx

《Asp课后习题答案.docx》由会员分享,可在线阅读,更多相关《Asp课后习题答案.docx(15页珍藏版)》请在冰点文库上搜索。

Asp课后习题答案.docx

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)

{

IListlstUniversityModel=this.GetModelList(universityid);

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

上面的代码中,div1是流布局,div2采用相对定位,div3采用绝对定位。

div2在div1之后出现,正常流的位置在div1左下角的下方,div2的相对定位以该点为原点进行定位,而div3在div2中,其绝对定位以div2的左上角为原点。

定位效果图如下:

第7章

1.用代码举例说明如何实现工具提示功能。

2.什么是CSS3关键帧动画?

用具体代码举例说明如何在MVC项目中设计CSS3关键帧动画。

3.用代码举例说明如何利用jQuery动画实现页面滑动效果。

第8章

1.简要回答EF6提供的开发模式及其特点。

答:

EF6提供的开发模式有三类:

(1)数据库优先(DatabaseFirst),是指先创建数据库,然后再利用实体框架从数据库生成实体数据模型(EntityDataModel,EDM)。

这些信息都以XML的形式保存在扩展名为“.edmx”的文件中。

该模式的优点是直观、方便,适用于数据库结构变化较少的情况;缺点是每次修改数据库结构,都要重新手工生成实体数据模型。

(2)模型优先(ModelFirst),是指先利用实体框架设计器创建模型,再通过设计器创建数据库。

该模式仍然用一个.edmx文件存储模型和映射信息。

(3)代码优先(CodeFirst),是指先编写一个或多个实体类(.cs文件),或者根据已存在的数据库先生成一个或多个实体类(.cs文件)。

一旦有了实体类和数据上下文类,当需要修改数据库结构时,只需要修改实体类中的代码即可,每次修改后,EntityFramework都会自动删除已经存在的数据库,然后再创建新的数据库。

在这3种开发模式中,代码优先模式是最方便的一种模式,也是建议的首选开发模式。

2.以MyDb2Table1为例,通过具体设计步骤,说明如何将课程编码对照表的数据读取到下拉框中并将其显示出来供用户选择。

并说明当用户选择某个课程名称后,如何获取该课程名称对应的课程编号。

答:

(1)在Chapter08区域的Controllers文件夹下添加一个名为MyDb2Controllers子文件夹,然后鼠标右击该子文件夹,选择【添加】→【控制器】命令,在弹出的窗口中,选择【包含视图的MVC5控制器(使用EntityFramework)】模板,再填写上控制器的名称即可。

此时,在MyDb2Controllers文件夹下就会自动添加文件名为MyTable1Controller.cs的文件,并自动在Views文件夹下添加MyTable1子文件夹,同时还会在该子文件夹下添加以下文件:

Index.cshtml、Create.cshtml、Details.cshtml、Edit.cshtml以及Delete.cshtml。

(2)由于下拉框读取的是MyTable1表中的数据,因此,在控制器中需要提供一个下拉列表选择项,Index操作方法中的相关代码如下:

ViewBag.kcList=newSelectList(db.MyTable1,"KeChengID","KeChengName",id);

这行代码中的第1个参数(db.MyTable1)表示从哪个表中读取将在下拉框中显示的所有可选项,由于我们希望显示课程名称但返回的是该课对应的编码,因此需要通过第2个参数("KeChengID")指定下拉框每个选项返回的对应值,在第3个参数("KeChengName")中指定显示在下拉框中的内容,例如,当用户选择“操作系统”选项时,下拉框返回的值为“002”。

第4个参数(id)表示下拉框的默认选项。

在Index.cshtml文件中,通过Html.DropDownListFor指定选择的值,代码如下:

@Html.DropDownListFor(

m=>Model.FirstOrDefault().KeChengID,

(SelectList)ViewBag.kcList,

htmlAttributes:

new{@style="min-width:

160px;"})

其中,第1个参数表示将选项保存到哪个列表中(虽然下拉框是单选,但是由于下拉框是文本框和列表框组合出来的,而列表框可同时多选,因此必须用一个列表来保存选项),这里我们将其保存到MyTable3的KeChengID字段中,当用户选择某个课程后,就可以在控制器中读取该字段的值。

(3)当用户从主页面的下拉框中选择某个课程名称后,单击【选择】按钮,就会自动显示该课程对应的课程编号,以及该课程所有学生的成绩。

3.简要回答如何实现批量编辑成绩的功能。

答:

分两步:

(1)从下拉框中选择课程,添加成绩

添加成绩实现批量添加所有学生该课成绩的功能,结果仍显示在主页面中。

当【添加成绩】按钮可用时,说明成绩表中还不存在所选课程的成绩,此时单击【添加课程】即可实现批量自动添加功能,批量添加后的结果如图所示。

批量自动添加后,就可以通过【编辑成绩】录入每个学生的成绩了。

(2)编辑成绩(Edit.cshtml文件)

当用户“选择”或者“添加”某个课程后,类似按钮样式的【编辑成绩】超链接即变为可用,该超链接用于导航到编辑页面,在该页面中可录入或者修改每个学生的成绩。

当录入或修改的成绩不符合验证要求时,就会自动显示验证失败的消息,直到用户修改了所有验证错误并单击【保存】按钮才会更新数据库,程序运行效果如图所示。

编辑保存按钮的代码,遍历每个学生,进行依次保存。

第9章

1.简要说明WebAPI和XMLWebService的区别和联系。

答:

XMLWebService是指以XML为数据传输格式的Web服务,这种Web服务利用WSDL(WebServiceDescriptionLanguage,Web服务描述语言)描述Web服务提供的方法以及调用这些方法的各种方式,是用XML文档来描述Web服务的一种标准。

WebAPI是一种框架,该框架通过HTTP提供各种Web服务编程接口,可供各种客户端应用程序访问,利用WebAPI,还可以创建基于.NET框架的RESTful应用。

两者都是Web服务接口。

WebApi是基于纯粹的http协议,Webservice是基于soap协议。

前者相对后者配置简单、速度快、占用资源少,一般用于Web应用开发特别是移动Web应用开发应用中。

在WebAPI流行之前,服务商基本上都是利用XMLWebService通过HTTP对外提供Web服务。

近几年来,随着智能手机等移动设备的普及和应用,传统的XMLWebService正逐渐被新的WebAPI方式替代。

2.什么是OData?

简要说明如何利用它提供WebAPI服务。

答:

OData(OpenDataProtocol,开放数据协议)是一种描述如何创建和访问RESTful服务的OASIS标准(即:

开放工业标准)。

其用途是提供查询和更新数据的一种开放的Web协议,以增强各种网页应用程序之间的数据兼容性。

OData构建于很多Web技术之上,比如HTTP、AtomPublishingProtocol(AtomPub)和JSON等,该标准提供了从各种应用程序、服务和存储库中访问信息的能力。

利用OData可公开的数据源包括但不限于:

关系数据库、文件系统、内容管理系统和传统Web站点。

先按如下步骤设计WebAPIOdata服务:

1.利用EF创建模型。

2.添加OData配置。

创建实体数据模型(EDM)、添加名称为“odata”的路由。

3.添加OData控制器。

4.修改OData控制器代码。

然后可以采用如下两种方式调用WebAPIOData服务:

1.客户端页面中,可直接用jQueryajax调用基于OData的WebAPI服务。

2.利用C#代码通过控制器实现客户端调用(该控制器相对于OData服务属于客户端),再利用模型实现和页面的交互。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2