前言
简介
本文绝大部分整合自胡明科和魏凯同学梳理并分享的两份笔记文档,并根据部分录音文件做了少许改动,如有错误和遗漏请在下方评论区进行讨论和补充。
正文
考试结构
多选&填空题
关于MVC文件/文件夹说法正确的是?
解:该部分内容参见课件,MVC项目结构,如:
①Global.asax,在应用程序的根目录下,用于处理应用程序级事件的文件
②最开始启动的是App_Start,由Global.asax调用,放置应用程序启动执行的代码文件
MVC程序的执行过程:Global.asax调用App_Start的各个文件-》默认控制器-》控制器对应的视图MVC程序的技术要素包括哪些?
解:路由、控制器、视图、配置文件、过滤器某通过编译的MVC程序运行输出视图不存在的可能原因?
解:
①视图没有创建
②视图创建了保存位置位置不对
③控制器没有调用视图的方法
④控制器没有指定视图的路径构造一个新局部类,应该具有什么特性?
解:元数据类型特性,即MetadataType(Attribute)去获取上传对象文件的方法
解:
①Request.Files(原始Form文件上传)
②接收上传文件HttpPostedFileBase对象参数(应用MVC文件上传)哪些方法可以从控制器传递数据到视图?
解:ViewData、ViewBag、TempData、Session、Model、Tuple
(适合传递的模型数据可以用View+Model,Model可以是有广泛含义的,如List)ModelState包含两部分内容
解:原始数据、验证数据通过搭建什么项目可以实现系统分离前后端?
解:分区项目(分区项目优势是(实现前端和后端的分离))在实际开发中,模型通常分为哪两种模型?
解:视图模型和业务模型MVC路由系统的主要职责是将各种URL请求转发给谁处理?
解:控制器控制器和方法区分,给出URL请求,区分控制器是什么,动作方法是什么?
解:前面是控制器,然后是动作方法,动作方法的标准写法是在名称后加括号使用什么可以在控制器和视图中获取路由数据?
解:RouteData,可以说路由数据可以在控制器和视图中查取。什么对象可以用来跨请求传递数据?
解:Session(TempData也行)什么方法可以内联调用动作方法并输出视图?
解:Html.RenderAction谁是辅助视图生成页面元素的工具类?
解:HtmlHelperRazor视图服务端代码以什么开头?
解:@给一段代码判断哪部分有问题,不能通过正常编译
解:如可空,把空值赋给可空类型,把空值赋给不可空类型等。详情见课件二。谁跟谁的数据是相通的?
解:ViewBag和ViewData实现新功能(如活动)放在那一层实现较合适?
解:业务逻辑层在视图当中使用CKEditor代替的是什么?
解:TextArea(富文本编辑框)扩展方法(如验证email属性有没有符合定义的正则表达式)的参数前面加this,那么在匹配验证规则是用(对象.xxx),还是(this.xxx)
解:如参数为this.User.user ,进行邮箱匹配的时候写(user.email),即(对象.xxx)访问URL地址,显示“找不到页面”的错误原因?
解:页面没有创建,控制器没有写ViewAjax实现后台的数据验证,使用的返回类型为?
解:JSON,JSON可与AJAX可配合使用进行模型分解的时候可以分为视图模型(View Model)和业务模型(Business Model),他们分别可以定义什么类,运用什么特性?
解:都可以定义为Partial类,View Model还可以定义元数据的内部类,且可定义属性,运用MetadataType特性。它们应用这样的元数据类型,把自己加到分解视图当中。路由规则,URL地址,路由数据相关问题。
解:
①问法一,给定路由规则,URL地址,路由数据匹,判断是匹配?
②问法二,根据路由规则,给定URL地址,问路由数据是什么?
③取路由数据时,动作方法后面要加括号。
④URL中没有给出的路由数据为NULL,而不是空字符串
⑤贪婪匹配规则:匹配最后一个适合的,取相应路由数据。
⑥字面量不可变,占位符可变,占位符内容是什么取决于URL写了什么,类似于变量,写路由规则的时候可以给他们设置默认值,如果URL没有给出相应的值,就取默认值。
⑦“/”是默认匹配的字面量,字面量只有“/”,一些占位符的值可以使用默认的,但当包含默认匹配字面量外的字面量时,为占位符定义的默认值不起作用。
⑥详细见第三个课件11,12,13,16,19-21页。内连方式Html.RenderAction()用法
解:
①把方法写到HomeController里
②新建该方法对应的强类型视图(列表型)
③在母版中相应位置添加内连引用关于ActionName特性,为动作方法取别名的问题。
解:创建视图的时候,视图名称是跟ActionResult(Register)匹配的,而不是ActionName(RegisterUser)匹配。自动类型转换隐式动作类型问题。
解:控制器方法返回值多为ActionResult,如果想让返回值类型设置为其他类型,则可以使用隐式动作类型,MVC会进行自动类型转换,例如返回类型是int,则会自动转换为常用的输出类型ContentResult(文本输出)。表单元素命名规则问题。(两道题)
解:进行模型绑定,动作方法参数名和属性之间用“.”进行访问;如果其属性也是Model,继续用“.”进行访问;如果是模型集合,访问其属性以动作方法参数名+序号+属性,命名前缀可以统一加或不加。
①模型包含模型 :动作方法参数名.属性.属性
②模型集合:动作方法参数名[序号].属性.属性
③对象包含模型集合:动作方法参数名.属性[序号].属性解决控制器同名方法的问题。(详见课件四, 22页到25页)
解:路由系统不能根据动作方法的参数定义动作方法,所以解决方法同名的手段:
①NonAction特性,声明为非动作方法
②ActionName特性,为动作方法取别名
③针对请求类型定位
方法名 | 请求类型 |
---|---|
HttpGet | 针对Get请求 |
HttpPost | 针对Post请求 |
HttpDelete | 针对Delete请求 |
HttpPut | 针对Put请求 |
判断题
MVC作为三层架构程序的表现层
解:正确ModelState包含了页面向控制器传输的数据的存储,以及经过验证规则得到验证失败的信息的存储,可以自定义验证的错误信息
解:正确(ModelState对象的数据含有表单数据容器和验证结果容器,可以自定义验证错误信息。模型映射自动应用验证规则,ModelState完成初始化。 )HtmlHelper的某些方法的实质是使用了ModelState的数据
解:正确(Html.ErrorMessage就是用了ModelState中数据)在模型自动绑定的时候会向ModelState添加数据
解:正确在视图当中不能直接获取ModelState对象
解:错误在动作方法中可以直接输出Javascript脚本
解:正确动作方法的返回类型必须是ActionResult
解:错误动作方法返回类型必须是基本数据类型
解:错误动作方法返回类型可以是可空类型,并且有可选参数
解:正确动作方法的参数只能是基本数据类型
解:错误动作方法的参数类型可以是可空类型或可选参数类型
解:正确分离模型验证规则,构建一个新的局部类,局部类包含元数据类
解:正确元数据类包含属性并包含验证规则
解:正确MVC和三层框架是为了应用程序的分离
解:正确 (MVC强调逻辑分离,三层框架强调物理分离)命名参数的参数Ⅰ,不一定是方法参数中的第一个参数
解:正确隐式类型在定义的时候可以不用同时进行初始化(选择)
解:错误(定义时必须进行初始化)MVC中模型代码可以对应三层模型中的业务逻辑层和数据访问层
解:正确 (视图和控制器对应表示层,模型对应业务逻辑层、数据访问层、模型实体层)一个目标元素、一个属性或Class只能有一个特性
解:错误MVC当中只提供路由匹配中间参数的默认值是不起作用的
解:正确可以通过不同的路由名称定义多组路由
解:正确ViewBag是动态(dynamic)类型的一种字典集合数据,是视图基类和控制器基类的属性 (TempData, RouteData也是视图基类和控制器基类的属性)
解:正确View是视图的基类
解:正确在实际开发中,ViewBag和ViewData通常只使用一种以保证代码统一
解:正确Razor是ASP .NET MVC当中可替代Aspx的视图引擎
解:正确视图和控制器有继承关系
解:错误Aspx视图中不可以定义全局变量
解:错误Model是必须的,路由可有可无
解:错误控制器的命名和视图文件夹的命名有对应关系
解:正确URL模式大小写不敏感
解:正确有一道题关于Html.ValidationSummary是错误信息的集合,包含原始的和自定义的错误信息。
解:正确
上机题
50%上机,当场评定成绩 分为前端和后端 自己创建数据库,创建表,表有两张,主外键关联,id主键自动增长
1.搭建基于MVC三层架构
2.搭建后台分区项目Areas,前端和后端
3.包括一个信息列表,包含分页功能,从数据库中取出来,
4.在列表中按照某一些字段进行条件查询
5.在列表中有详细信息页面,3种方法都可以
6.对表信息的添加,要求进行Ajax重复数据验证,客户端非空验证
7.执行数据的正确,添加的正确,列表的正确,表名,字段名都要严格按照要求
8.两种分页熟悉一种,查询时加上查询限定条件
9.会使用模型进行自动的绑定,模型绑定使用验证规则,使用MVC验证框架,Html辅助方法创建表单。
10.熟悉基本命名规则,非空,Email,jQuery实现客户端验证。
参考
欢迎转载,请注明本文的链接地址: http://blog.neday.cn/2018/03/02/2013级MS_Web开发框架技术(二)期末考试复习整合/