一.单选题

1.定义数据结构,负责连接数据库,负责所有与数据有关的任务.

A.Model  B.View  C. Controller D. Content

2.决定系统运行流程,负责从模型中获得数据.

A.Model  B.View  C. Controller D. App_Start

3.从控制器取得数据,并将数据显示在用户接口上.

A.Model  B.View  C. Controller  D. App_Data

4.View的视图引擎采用了两种:一种是Aspx,一种是:

A. CSS  B.XUnit  C. Razor  D. Nunit

5.    基于MVC的Asp.net Web应用开发框架使用一些基本原则,包括:

A.约定优于配置

B. Dry原则(不要重复你自己)

C.高内聚,低耦合

D.要采用C#语言

6.如果定义了一个可供网址直接访问Action,其名称是:Add(int First,int Second),那么URL访问形式如下,错误的为:

A.http://localhost:2180/Home/Add?First=1&Second=2

B.http://localhost:2180/Home/Add(1,2)

C.http://localhost:2180/Home/Add(First,Second)? First=1&Second=2

7.我们采用Entity Framework支持的Code First开发模式时,需要先建立数据库,然后再进行其它的开发.

A.错误. B.正确.

8.在Models目录下,创建一个类文件,需要声明主键,以下说法错误的是:

A.方法1把相应的Property名称写成为Id,型别为int.

B.方法2把相应的Property名称写成为StudentId,型别为int.

C.方法3在相应的Property上加一个Key Attrubute

D.以上都错.

9.在Models目录下,创建一个类文件,需要声明字段长度,以下说法正确的是:

A.在相应的Property上加一个MaxLength Attrubute

B.在相应的Property上加一个Required Attrubute

C.在相应的Property上加一个Key Attrubute

D.以上都错.

10.在Models目录下,创建一个类文件,如果希望把某Property声明为DateTime类型,在数据库表格里的相应字段设置为允许NULL的话,那么我们可以在该Property的类型声明后,加上一个问号.

A.错误.B.正确.

11.在Models目录下,创建一个类文件,在某个Property上加一个NotMapped Attribute,其目的是:

A.禁止用户通过URL直接访问此Property

B.允许用户通过URL直接访问此Property

C.把此Property排除在Entity Framework自动对应的数据库表格字段之外

D.把此Property包含在Entity Framework自动对应的数据库表格字段之内

12.在Models目录下,创建一个类文件,有以下代码:

Public virtual Teacher Teacher{get;set;}

关于virtual关键字,说法正确的是:

A.可启用”延迟装入”特性. B.关闭”延迟装入”特性.

13.在控制器中的Action前面加一个NonAction属性,其目的是禁止该Action发布到Web上.

A.错误. B.正确

14.判断模型绑定的验证结果,可以通过以下哪个对象进行判断?

A.Model.   B.State   C.ModelState  D.Session

15.我们在开发Asp.Net MVC时,有一个口头禅:

A.Model要轻,Controller要重,View要笨

B.Model要重,Controller要笨,View要轻

C.Model要重,Controller要轻,View要笨

16.在Global.asax文档里的Application_Start方法加上一段System.Data.Entity.Database.SetInitializer()方法,其中传入的参数使用的是System.Data.Entity.DropCreateDatabaseIfModelChanges泛型,其意思是:

A.数据模型发生变化时,数据库数据清除

B.数据模型发生变化时,数据库删掉重建

C.数据模型发生变化时,启用数据迁移

二.判断题

1.控制器类必须位于项目的Controllers目录下,控制器类的名称必须以Controller结尾(T)

2.Views目录的第一级目录名称必须与其对应的控制器的名称相同(T)

3.数据类型 int? 代表的意思是此数是整数,不能为空(F)

4.NoAction属性主要用来保护Controller中的特定public的方法不会发布到Web上成为Action(T

5.将方法的”public”访问修饰符改为”private”,封闭方法也可以达到NonAction属性的同样的作用(T)

6.HttpGet,HttpPost,HttpDelete,HttpPut属性是动作方法选择器的一部分(T)

7.如果在Action上应用HttpPost属性,则此Action只会在收到HTTP Post请求时,才可以选择此Action;如果没有此类属性,那么客户端发送来的任何HTTP请求,对应Action都将会被选择并执行(T)

8.Asp.Net MVC可以采用弱类型取得数据,也可以采用强类型取得数据,两者的区别在于View页面最上方申明的方式(T)

9.DateTime在Net环境下是实值型, 但可以通过加 ? 符号,变成 Nullable 型别(T)

10.布局页中的@RenderBody()符号,表达一个占位符(T)

三.阅读曾经的上机代码,选择回答问题:

1代码片段:

[HttpPost]  

[Authorize(Users=”zhangsan,lisi”)]    

public ActionResult Create(Student stu)

{

///…

Return RedirectToAction(“CreateResult”);

}

上述代码中的[HttpPost]行及[Authorize]行的代码目的是什么?正确选项是(多选):

A. [HttpPost]目的是此Action只接受Post方式提交的表单数据。

B. [HttpPost]目的是此Action接受Post方式提交的表单数据,也接受Get方式提交的数据。

C. [Authorize]目的是此Action只接受用户名称为zhangsan或者lisi的数据

D. [Authorize]目的是此Action只接受用户名称为zhangsan 且lisi的数据。

2代码片段:

@Html.ActionLink(“One”,”Second”)

上述代码含义,正确选项是(单选):

A.产生一个a链接,对外显示的文字是One,链接对应Action为Second( )

B.产生一个a链接,对外显示的文字是Second,链接对应Action为One( )

3代码片段:

public override void OnActionExecuting(ActionExecutingContext filterContext)

{

    filterContext.HttpContext.Response.Write("
" + Para + "
:OnActionExecuting");

    base.OnActionExecuting(filterContext);

}

public override void OnResultExecuted(ResultExecutedContext filterContext)

{

    filterContext.HttpContext.Response.Write("
" + Para + "
:OnResultExecuted");

    base.OnResultExecuted(filterContext);

}

上述代码的含义,正确选项是(单选):

A.第一段代码段定义一个动作过滤器,第二段代码定义一个结果过滤器

B.第一段代码段定义一个结果过滤器,第二段代码定义一个动作过滤器

4代码片段:

public class MyAuthorizeAttribute :AuthorizeAttribute

{

protected override bool AuthorizeCore(HttpContextBase httpContext)

{

return DateTime.Now.Minute % 2 == 0;

}

protected override void HandleUnauthorizedRequest(AuthorizationContextfilterContext)

{

filterContext.HttpContext.Response.Redirect("/Home/ShowTip");

}

}

上述代码含义,请选择正确选项(单选):

A.上述代码段定义一个结果过滤器,用户输入如果不符合要求,会激发相应的异常处理。

B.上述代码段定义一个授权过滤器,用户登录不符合权限要求,会激发相应的异常处理。

5代码片段:

public ActionResult Index()

{

  ///…..

  return View(”About”,”MasterPage”);

}

上述代码中return View(”About”,”MasterPage”)的含义,正确的选项是(单选):

A.返回一个结果视图About在,采用的布局是MasterPage

B.返回一个结果视图About,传入一个字符串“MasterPage”。

C.返回一个结果视图About,传入一个对象MasterPage

6代码片段:

public ActionResult GetPartialDemo()

{

  ///…..

  return PartialView(”PartialDemo”);

}

上述代码中return PartialView(”PartialDemo”)的含义,正确的选项是:

A.返回一个局部视图”PartialDemo”,View中,可以采用@Html.Action(“GetPartialDemo”)引用

B.返回一个局部视图”PartialDemo”, View中,可以采用@Html.Partial (“PartialDemo”)引用

C.返回一个局部视图”PartialDemo”,View中,可以采用@Html. GetPartialDemo()引用。

7部分代码:

Global.asax.cs文件中的部分代码:

protected void Application_Start()

{

Application["OnLineUserCount"] = 0;

……

}

protected void Session_Start(object sender, EventArgs e)

{

Application.Lock();

Application["OnLineUserCount"] = Convert.ToInt32(Application["OnLineUserCount"]) + 1;

Application.UnLock();

}

protected void Session_End(object sender, EventArgs e)

{

Application.Lock();

Application["OnLineUserCount"] = Convert.ToInt32(Application["OnLineUserCount"]) - 1;

Application.UnLock();

}

上述代码含义,正确选项是(多选):

A.使用Application["OnLineUserCount"] 全局对象统计在线人数。

B. Application["OnLineUserCount"] 全局对象只能被某一个用户访问。

C. Convert.ToInt32的作用是把字符串转换为32位整数。

D. Application.Lock()以及Application.UnLock()的作用是对全局对象加锁和解锁,保证某一时刻,只能被某一个用户访问。

8部分代码:

routes.MapRoute(

      name: "ForgeHtml", 

      url: "china/htzd/{id}.html", 

      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 

      constraints: new {id=@"\d+" } 

); 

上述代码含义,正确选项(单选):

A.创建一个路由,模拟静态页面URL,id参数约束为整数,此路径最终指向网站首页。

B.创建一个路由,模拟静态页面URL,id参数可以为任意值,此路径最终指向网站首页。

9这是上机的一个控制台的部分代码: …

public ActionResult CookiesTest()

{

      Response.Cookies["userName"].Value = "HTZD";

      Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);

      return View("ShowResult");

}

 

public ActionResult CookiesAbandom()

{

Response.Cookies["userName"].Expires = DateTime.Now.AddDays(-1);

return View("ShowResult");

}

上述代码含义,正确的选项是(多选):

A.创建一个cookie,名称为”username”,值为”HTZD”

B.此Cookie当CookiesAbandom()执行时,即可清除。

C.此Cookie当CookiesAbandom()执行完,浏览器关闭后方可清除。

D. Response.Cookies["userName"].Expires的目的是设置Cookie的生命周期。

10这是我们上机过的一个的部分代码,利用Linq查询语法:

public ActionResult StudentExt()       

{        

            var query = from s in students

                            join f in  formteachers on s.FormteacherID equals f.ID                            

                        select new StudentExt

                        {

                            ID = s.ID,

                            Name = s.Name,

                            Score = s.Score,

                            FormteacherName=f.FormteahcerName

                        };

          return View(query);

}

上述代码的含义,正确选项是(多选):

A.此段代码完成了students以及formteachers内连接Linq查询

B. Sql Server  Sql语句的部分功能可以通过Linq代码进行替代。

C.Linq语法有两种:查询语法和链式语法

D.代码编译时,Linq查询语法最终要转化成Linq链式语法

四.简答题:

1.AspNet Mvc有哪三种开发模式?(单选)

A. Linq优先、模型优先、代码优先。

B. Model优先、View优先、Controller优先。

C. Model优先、View优先、代码优先。

D. 数据库优先、模型优先、代码优先。

2.从Controller取得数据后,可以传递给View的几种传递方法(多选)

A. ViewBag

B. ViewData

C. TempData

D. Session

=========================

1.列举Http请求中的状态码?

1xx —— 元数据 
2xx —— 正确的响应 
3xx —— 重定向 
4xx —— 客户端错误 
5xx —— 服务端错误

100 Continue。客户端应当继续发送请求。 
200 OK。请求已成功,请求所希望的响应头或数据体将随此响应返回。 
201 Created。请求成功,并且服务器创建了新的资源。 
301 Moved Permanently。请求的网页已永久移动到新位置。 服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。

302 Found。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 
400 Bad Request。服务器不理解请求的语法。 
401 Unauthorized。请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 
403 Forbidden。服务器拒绝请求。 
404 Not Found。服务器找不到请求的网页。 
500 Internal Server Error。服务器遇到错误,无法完成请求。

2. 列举Http请求中常见的请求方式?

1)opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)

2)Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)

3)Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改

4)Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)

5)Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

6)Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

7)Trace 回显服务器收到的请求,用于测试和诊断

8)Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务http服务器至少能实现get、head、post方法,其他都是可选的

3.什么是CDN?

CDN指分布式服务器系统。服务商把你需要的资源存储在分布于不同地理位直的多个服器,它会根据用户的地理位直来就近分配服务器提供服务(服务器越近,资源传送就越快)。使用CDN服务可以加快网页资源的加载速度,从而优化用户体验。对于开源的css和J a v a S c r i p t库,CDN提供商通常会免费提供服务。

4. get、post、head、put、delete、options、trace 的区别

1)get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。
在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个请求发送多次返回的结果应该相同。
特点:
get请求会把请求的参数附加在URL后面,这样会产生安全问题,如果是系统的登陆接口采用的get请求,需要对请求的参数做一个加密。
get请求其实本身HTTP协议并没有限制它的URL大小,但是不同的浏览器对其有不同的大小长度限制

2)post请求一般是对服务器的数据做改变,常用来数据的提交,新增操作。
特点:
post请求的请求参数都是请求体中
post请求本身HTTP协议也是没有限制大小的,限制它的是服务器的处理能力

3)HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

4)put请求与post一样都会改变服务器的数据,但是put的侧重点在于对于数据的修改操作,但是post侧重于对于数据的增加。

5)delete请求用来删除服务器的资源。

6)options请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发get,post,put,delete等请求。至于什么情况下浏览器会发预检请求,浏览器会会将请求分为两类,简单请求与非简单请求,非简单请求会产生预检options请求。

7).TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。

另外:这些不同方式的请求形式,只是一种规范定义而已,并不是说get请求无法修改服务器的数据,只是一种规范,比如你也可以所有的请求都通过post方式来访问,实现功能上面没有任何问题,只是说这种做不符合了规范而已,我们平常编码还是尽量符合规范比较好。

5.GET请求方式的字符长度有没有限制?

GET方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。但是,特定的浏览器及服务器对它有限制。各种浏览器和各种服务器的最大处理能力有所不同。

6.解释一下token的意思.

token是一种身份验证的机制,初始时用户提交账号数据给服务端,服务端采用一定的策略生成一个字符串(token),token字符串中包含了少量的用户信息,并且有一定的期限。服务端会把token字符串传给客户端,客户端保存token字符串,客户端可以在每次请求的时候带上 token 证明自己的合法地位,token其实通俗点讲也可以理解为暗号,在数据传输之前要进行暗号对接和核对,不同的暗号被授权不听的数据操作,

7.为什么要用token?

1)token 完全由应用管理,所以它可以避开同源策略

注:什么是同源策略(所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源。同源策略是必须的。如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问)

2)Token 可以避免 CSRF攻击

注:(你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。后面这个链接是我看到的对于这个CSRF很详细的介绍,感兴趣可以看下浅谈CSRF攻击方式)

3)Token 可以是无状态的,可以在多个服务间共享。

8.CSRF是什么?

CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,也被称为 one-click attack 或者 session riding。

9.APPlication,Session和Cookie的区别

信息量大小

保存时间

应用范围

保存位置

Application

任意大小

整个应用程序的生命期

所有用户

服务器端

Session

小量,简单的数据

用户活动时间+一段延迟时间(一般为20分钟)

单个用户

服务器端

Cookie

小量,简单的数据

可以根据需要设定

单个用户

客户端

1)Application对象

Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合

2)Session对象

Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择.

3)Cookie对象

Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.

《Asp.Net MVC 》复习题目相关推荐

  1. 2021年最新ASP.NET MVC面试题汇总

    这个给.NET开发者们整理了一份<.NET/C#面试手册>,目前大约4万字左右,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间.对于没有跳槽打算的也可以复习一下 ...

  2. 艾伟_转载:ASP.NET MVC数据验证

    关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解.也可能很多人都在Scott Guthrie等人写的一本<ASP.NET MVC 1.0>书中,见过Ner ...

  3. MVC站点默认页为html页,设置ASP.NET MVC站点默认页为html页

    问题由来 部署了一个Asp.Net MVC的站点,其功能只是作为移动端的服务器,服务器空间里面除了CMS以外就没有其他的页面了.这对于我们来说确实是有点浪费了. 可以放点静态的啥小东西放在上面玩一玩. ...

  4. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  5. ASP.NET MVC数据验证(上)

    关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解.也可能很多人都在Scott Guthrie等人写的一本<ASP.NET MVC 1.0>书中,见过Ner ...

  6. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  7. 最新的基于mvc毕业设计题目50例

    基于mvc毕业设计题目1-10题 1.基于MVC的地方高校双学位网上报名系统的开发 2.基于MVC模式网上拍卖系统的设计与实现 3.基于MVC模式的Spring框架的应用与研究 4.基于MVC模式的S ...

  8. ASP.NET MVC 2示例Tailspin Travel

    Tailspin Travel 是一个旅游预订的应用程序示例,最新版本采用ASP.NET MVC 2技术构建,主要使用 DataAnnotations 验证, 客户端验证和ViewModels,还展示 ...

  9. Asp.net MVC中的ViewData与ViewBag

    在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从 ...

最新文章

  1. 专访百度熊辉:有人转AI纯粹因为好找工作,这样的人不是我想要的
  2. Eclipse 代码风格配置
  3. python批量下载网页文件-Python批量下载网页图片详细教程
  4. Android自定义控件前导基础知识学习(一)——Canvas
  5. 小时代5-perl的INC设置分析
  6. 易创课堂武汉站-NTES@百位创业者智慧众筹
  7. java实现多级菜单(java递归)方法一
  8. 远程桌面mstsc命令参数的使用
  9. Spring原理只要看这篇文章就够了
  10. 插件一:JAVA微信砍价活动源码分享[商品帮砍到0元,免费领取奖品]
  11. 谁说产品经理和程序员之间不能和平共处?
  12. 计算机图形学前沿领域的设想,计算机图形学
  13. android9三星功能,三星开启安卓9.0测试:One UI Beta计划
  14. 吴恩达深度学习课后作业-目标检测的环境配置
  15. 阿里安全IoT安全研究团队Leader谢君:如何黑掉无人机
  16. Ubuntu 16.04下安装SVN可视化客户端--RabbitVCS
  17. 苹果ipad8和ipad9的区别
  18. html树状图在线画板,树状思维导图怎样绘制
  19. Linux 安装PostgreSql
  20. 可能是你见过最强的猜数字游戏(doge

热门文章

  1. 什么是语言类型的强弱?
  2. 2004十大网络流行语”已评出 做人要厚道排第一
  3. 【VScode】搜索栏语法
  4. PCL:StatisticalOutlierRemoval 统计滤波
  5. 传统行业+NFT然后迎来新增长点?
  6. 个性化学习推荐系统的设计与实现
  7. ArcGIS ArcTooBox中的工具执行没有结果的处理办法
  8. LeetCode刷题实战1:在数组上遍历出花样
  9. android popwindow 使用 转http://www.cnblogs.com/jenson138/p/4335818.html
  10. 汽车电子测试小知识(2)——什么是SiL测试?