2013级MS_Web开发框架技术(二)期末考试复习整合


前言

简介

本文绝大部分整合自胡明科和魏凯同学梳理并分享的两份笔记文档,并根据部分录音文件做了少许改动,如有错误和遗漏请在下方评论区进行讨论和补充。


正文

考试结构

ms_2016_01

多选&填空题

  1. 关于MVC文件/文件夹说法正确的是?
    解:该部分内容参见课件,MVC项目结构,如:
    ①Global.asax,在应用程序的根目录下,用于处理应用程序级事件的文件
    ②最开始启动的是App_Start,由Global.asax调用,放置应用程序启动执行的代码文件
    MVC程序的执行过程:Global.asax调用App_Start的各个文件-》默认控制器-》控制器对应的视图

  2. MVC程序的技术要素包括哪些?
    解:路由、控制器、视图、配置文件、过滤器

  3. 某通过编译的MVC程序运行输出视图不存在的可能原因?
    解:
    ①视图没有创建
    ②视图创建了保存位置位置不对
    ③控制器没有调用视图的方法
    ④控制器没有指定视图的路径

  4. 构造一个新局部类,应该具有什么特性?
    解:元数据类型特性,即MetadataType(Attribute)

  5. 去获取上传对象文件的方法
    解:
    ①Request.Files(原始Form文件上传)
    ②接收上传文件HttpPostedFileBase对象参数(应用MVC文件上传)

  6. 哪些方法可以从控制器传递数据到视图?
    解:ViewData、ViewBag、TempData、Session、Model、Tuple
    (适合传递的模型数据可以用View+Model,Model可以是有广泛含义的,如List)

  7. ModelState包含两部分内容
    解:原始数据、验证数据

  8. 通过搭建什么项目可以实现系统分离前后端?
    解:分区项目(分区项目优势是(实现前端和后端的分离))

  9. 在实际开发中,模型通常分为哪两种模型?
    解:视图模型和业务模型

  10. MVC路由系统的主要职责是将各种URL请求转发给谁处理?
    解:控制器

  11. 控制器和方法区分,给出URL请求,区分控制器是什么,动作方法是什么?
    解:前面是控制器,然后是动作方法,动作方法的标准写法是在名称后加括号

  12. 使用什么可以在控制器和视图中获取路由数据?
    解:RouteData,可以说路由数据可以在控制器和视图中查取。

  13. 什么对象可以用来跨请求传递数据?
    解:Session(TempData也行)

  14. 什么方法可以内联调用动作方法并输出视图?
    解:Html.RenderAction

  15. 谁是辅助视图生成页面元素的工具类?
    解:HtmlHelper

  16. Razor视图服务端代码以什么开头?
    解:@

  17. 给一段代码判断哪部分有问题,不能通过正常编译
    解:如可空,把空值赋给可空类型,把空值赋给不可空类型等。详情见课件二。

  18. 谁跟谁的数据是相通的?
    解:ViewBag和ViewData

  19. 实现新功能(如活动)放在那一层实现较合适?
    解:业务逻辑层

  20. 在视图当中使用CKEditor代替的是什么?
    解:TextArea(富文本编辑框)

  21. 扩展方法(如验证email属性有没有符合定义的正则表达式)的参数前面加this,那么在匹配验证规则是用(对象.xxx),还是(this.xxx)
    解:如参数为this.User.user ,进行邮箱匹配的时候写(user.email),即(对象.xxx)

  22. 访问URL地址,显示“找不到页面”的错误原因?
    解:页面没有创建,控制器没有写View

  23. Ajax实现后台的数据验证,使用的返回类型为?
    解:JSON,JSON可与AJAX可配合使用

  24. 进行模型分解的时候可以分为视图模型(View Model)和业务模型(Business Model),他们分别可以定义什么类,运用什么特性?
    解:都可以定义为Partial类,View Model还可以定义元数据的内部类,且可定义属性,运用MetadataType特性。它们应用这样的元数据类型,把自己加到分解视图当中。

  25. 路由规则,URL地址,路由数据相关问题。
    解:
    ①问法一,给定路由规则,URL地址,路由数据匹,判断是匹配?
    ②问法二,根据路由规则,给定URL地址,问路由数据是什么?
    ③取路由数据时,动作方法后面要加括号。
    ④URL中没有给出的路由数据为NULL,而不是空字符串
    ⑤贪婪匹配规则:匹配最后一个适合的,取相应路由数据。
    ⑥字面量不可变,占位符可变,占位符内容是什么取决于URL写了什么,类似于变量,写路由规则的时候可以给他们设置默认值,如果URL没有给出相应的值,就取默认值。
    ⑦“/”是默认匹配的字面量,字面量只有“/”,一些占位符的值可以使用默认的,但当包含默认匹配字面量外的字面量时,为占位符定义的默认值不起作用。
    ⑥详细见第三个课件11,12,13,16,19-21页。

  26. 内连方式Html.RenderAction()用法
    解:
    ①把方法写到HomeController里
    ②新建该方法对应的强类型视图(列表型)
    ③在母版中相应位置添加内连引用

  27. 关于ActionName特性,为动作方法取别名的问题。
    解:创建视图的时候,视图名称是跟ActionResult(Register)匹配的,而不是ActionName(RegisterUser)匹配。

  28. 自动类型转换隐式动作类型问题。
    解:控制器方法返回值多为ActionResult,如果想让返回值类型设置为其他类型,则可以使用隐式动作类型,MVC会进行自动类型转换,例如返回类型是int,则会自动转换为常用的输出类型ContentResult(文本输出)。

  29. 表单元素命名规则问题。(两道题)
    解:进行模型绑定,动作方法参数名和属性之间用“.”进行访问;如果其属性也是Model,继续用“.”进行访问;如果是模型集合,访问其属性以动作方法参数名+序号+属性,命名前缀可以统一加或不加。
    ①模型包含模型 :动作方法参数名.属性.属性
    ②模型集合:动作方法参数名[序号].属性.属性
    ③对象包含模型集合:动作方法参数名.属性[序号].属性

  30. 解决控制器同名方法的问题。(详见课件四, 22页到25页)
    解:路由系统不能根据动作方法的参数定义动作方法,所以解决方法同名的手段:
    ①NonAction特性,声明为非动作方法
    ②ActionName特性,为动作方法取别名
    ③针对请求类型定位

方法名 请求类型
HttpGet 针对Get请求
HttpPost 针对Post请求
HttpDelete 针对Delete请求
HttpPut 针对Put请求

判断题

  1. MVC作为三层架构程序的表现层
    解:正确

  2. ModelState包含了页面向控制器传输的数据的存储,以及经过验证规则得到验证失败的信息的存储,可以自定义验证的错误信息
    解:正确(ModelState对象的数据含有表单数据容器和验证结果容器,可以自定义验证错误信息。模型映射自动应用验证规则,ModelState完成初始化。 )

  3. HtmlHelper的某些方法的实质是使用了ModelState的数据
    解:正确(Html.ErrorMessage就是用了ModelState中数据)

  4. 在模型自动绑定的时候会向ModelState添加数据
    解:正确

  5. 在视图当中不能直接获取ModelState对象
    解:错误

  6. 在动作方法中可以直接输出Javascript脚本
    解:正确

  7. 动作方法的返回类型必须是ActionResult
    解:错误

  8. 动作方法返回类型必须是基本数据类型
    解:错误

  9. 动作方法返回类型可以是可空类型,并且有可选参数
    解:正确

  10. 动作方法的参数只能是基本数据类型
    解:错误

  11. 动作方法的参数类型可以是可空类型或可选参数类型
    解:正确

  12. 分离模型验证规则,构建一个新的局部类,局部类包含元数据类
    解:正确

  13. 元数据类包含属性并包含验证规则
    解:正确

  14. MVC和三层框架是为了应用程序的分离
    解:正确 (MVC强调逻辑分离,三层框架强调物理分离)

  15. 命名参数的参数Ⅰ,不一定是方法参数中的第一个参数
    解:正确

  16. 隐式类型在定义的时候可以不用同时进行初始化(选择)
    解:错误(定义时必须进行初始化)

  17. MVC中模型代码可以对应三层模型中的业务逻辑层和数据访问层
    解:正确 (视图和控制器对应表示层,模型对应业务逻辑层、数据访问层、模型实体层)

  18. 一个目标元素、一个属性或Class只能有一个特性
    解:错误

  19. MVC当中只提供路由匹配中间参数的默认值是不起作用的
    解:正确

  20. 可以通过不同的路由名称定义多组路由
    解:正确

  21. ViewBag是动态(dynamic)类型的一种字典集合数据,是视图基类和控制器基类的属性 (TempData, RouteData也是视图基类和控制器基类的属性)
    解:正确

  22. View是视图的基类
    解:正确

  23. 在实际开发中,ViewBag和ViewData通常只使用一种以保证代码统一
    解:正确

  24. Razor是ASP .NET MVC当中可替代Aspx的视图引擎
    解:正确

  25. 视图和控制器有继承关系
    解:错误

  26. Aspx视图中不可以定义全局变量
    解:错误

  27. Model是必须的,路由可有可无
    解:错误

  28. 控制器的命名和视图文件夹的命名有对应关系
    解:正确

  29. URL模式大小写不敏感
    解:正确

  30. 有一道题关于Html.ValidationSummary是错误信息的集合,包含原始的和自定义的错误信息。
    解:正确

上机题

50%上机,当场评定成绩 分为前端和后端 自己创建数据库,创建表,表有两张,主外键关联,id主键自动增长

1.搭建基于MVC三层架构
2.搭建后台分区项目Areas,前端和后端
3.包括一个信息列表,包含分页功能,从数据库中取出来,
4.在列表中按照某一些字段进行条件查询
5.在列表中有详细信息页面,3种方法都可以
6.对表信息的添加,要求进行Ajax重复数据验证,客户端非空验证
7.执行数据的正确,添加的正确,列表的正确,表名,字段名都要严格按照要求
8.两种分页熟悉一种,查询时加上查询限定条件
9.会使用模型进行自动的绑定,模型绑定使用验证规则,使用MVC验证框架,Html辅助方法创建表单。
10.熟悉基本命名规则,非空,Email,jQuery实现客户端验证。


参考

  1. MS复习_胡明科
  2. MS期末考试复习简书 _魏凯

欢迎转载,请注明本文的链接地址: http://blog.neday.cn/2017/03/29/2013级MS_Web开发框架技术(二)期末考试复习整合/

苏晟, nEdAy wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!