ASP.NET MVC 笔试题(含详细答案)_第1页
ASP.NET MVC 笔试题(含详细答案)_第2页
ASP.NET MVC 笔试题(含详细答案)_第3页
ASP.NET MVC 笔试题(含详细答案)_第4页
ASP.NET MVC 笔试题(含详细答案)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP.NETMVC笔试题(含详细答案)适用场景:后端开发岗位面试、职场技能考核、入门进阶测试题型分值:选择题30分(10题×3分)、填空题20分(5题×4分)、简答题30分(3题×10分)、代码题20分(1题×20分),总分100分一、单项选择题(共10题,每题3分,共30分)1.ASP.NETMVC中MVC三个字母分别对应的模块,以下说法正确的是()A.Model数据模型、View视图、Controller控制器B.Model视图、View数据模型、Controller控制器C.Model控制器、View视图、Controller数据模型D.Model业务逻辑、View控制器、Controller视图答案:A详细解析:MVC是经典三层架构分工,Model负责封装数据和业务实体,View负责页面展示与用户可视化交互,Controller负责接收用户请求、调度Model和View,处理业务流程。2.ASP.NETMVC路由规则的默认配置文件是()A.Web.configB.RouteConfig.csC.Global.asaxD.FilterConfig.cs答案:B详细解析:MVC5及以上版本默认在App_Start文件夹下的RouteConfig.cs配置路由规则,定义请求地址与控制器、动作方法的映射关系;Web.config为全局配置文件,Global.asax为全局应用程序类,FilterConfig.cs用于注册全局过滤器。3.控制器中返回前端页面视图的常用方法是()A.Redirect()B.View()C.Json()D.Content()答案:B详细解析:View()方法用于返回MVC视图页面;Redirect()用于页面重定向;Json()用于返回JSON格式数据;Content()用于返回纯文本、自定义格式内容。4.以下不属于ASP.NETMVC过滤器类型的是()A.授权过滤器B.异常过滤器C.缓存过滤器D.数据校验过滤器答案:D详细解析:MVC内置四大过滤器:授权过滤器(IAuthorizationFilter)、动作过滤器(IActionFilter)、结果过滤器(IResultFilter)、异常过滤器(IExceptionFilter),缓存过滤器属于动作过滤器衍生场景,无单独的数据校验过滤器,数据校验通过ModelState完成。5.MVC中ModelState.IsValid的作用是()A.判断模型数据是否为空B.判断视图模型数据校验是否通过C.判断数据库连接是否有效D.判断控制器方法是否执行成功答案:B详细解析:ModelState用于接收前端提交的表单数据,并根据实体类的数据注解(如[Required]、[MaxLength]等)自动校验数据合法性,IsValid属性为true表示所有校验规则全部通过,false表示存在数据格式、内容不符合规则的问题。6.实现页面跳转并传递参数,且属于客户端重定向的是()A.RedirectToAction()B.ReturnView()C.Server.Transfer()D.RenderAction()答案:A详细解析:RedirectToAction()是客户端重定向,浏览器地址栏会更新,可传递路由参数;Server.Transfer()是服务端重定向,地址栏不变;View()是返回视图,无跳转;RenderAction()用于页面局部渲染。7.ASP.NETMVC中强类型视图的主要优势是()A.页面加载速度更快B.支持编译时类型检查、智能提示,减少报错C.无需绑定模型数据D.兼容所有浏览器答案:B详细解析:强类型视图绑定指定实体模型,开发时VS可提供智能提示,项目编译时会校验模型属性是否合法,避免运行时属性不存在、类型不匹配等错误,提升开发效率和代码稳定性。8.以下关于TempData的说法正确的是()A.数据永久保存,页面刷新不丢失B.用于跨请求传递数据,读取一次后自动销毁C.只能在当前视图内使用D.存储在客户端Cookie中答案:B详细解析:TempData核心作用是跨控制器、跨请求传递数据,常用于重定向页面传值;数据读取一次后立即销毁,生命周期仅为一次请求响应;数据存储在服务端Session中,非客户端Cookie。9.MVC中用来限制指定Action仅允许POST请求访问的特性是()A.[HttpGet]B.[HttpPost]C.[ValidateInput]D.[AllowAnonymous]答案:B详细解析:[HttpPost]特性限定方法仅响应POST请求;[HttpGet]限定仅响应GET请求;[ValidateInput]用于开启/关闭请求参数验证;[AllowAnonymous]允许匿名访问,无需登录授权。10.Area(区域)在MVC中的核心作用是()A.美化项目目录结构B.实现项目模块化拆分,适配大型项目分层开发C.提升页面访问速度D.实现数据权限控制答案:B详细解析:Area区域功能可将大型MVC项目按业务模块拆分(如后台管理、前台用户、订单模块),每个区域独立拥有Controller、View、Model文件夹,解决项目文件过多、结构混乱的问题,便于团队协作和后期维护。二、填空题(共5题,每题4分,共20分)1.ASP.NETMVC路由的核心组成包含________、________、默认值、约束。答案:路由地址、命名空间解析:标准MVC路由配置核心要素:路由地址(匹配URL规则)、命名空间(限定控制器查找范围)、默认路由值、路由正则约束。2.MVC中三种常用数据传值方式:ViewData、________、________。答案:ViewBag、TempData解析:ViewData(字典形式,弱类型)、ViewBag(动态类型,语法更简洁)用于当前视图传值;TempData用于跨请求、重定向传值。3.全局过滤器需要在________文件中进行注册生效。答案:FilterConfig.cs解析:App_Start文件夹下的FilterConfig.cs负责注册全局过滤器,注册后所有控制器、动作方法都会生效。4.实现MVC表单自动数据绑定,需要保证表单________与实体模型________一致。答案:name属性、属性名解析:前端表单标签的name属性值,必须和后端Model实体类的属性名完全一致,MVC框架才能自动完成表单数据绑定赋值。5.MVC中________特性可以禁止当前Action或控制器被跨站请求伪造攻击。答案:[ValidateAntiForgeryToken]解析:该特性为MVC内置防CSRF攻击特性,配合表单中@Html.AntiForgeryToken()生成防伪令牌,可拦截非法跨站请求。三、简答题(共3题,每题10分,共30分)1.简述MVC中ViewData、ViewBag、TempData的区别与使用场景详细答案:(1)ViewData:属于字典格式(键值对),弱类型数据,生命周期为当前单次请求,仅能在控制器向对应视图传值,页面刷新、重定向后数据失效,语法繁琐,需要强制类型转换。(2)ViewBag:ViewData的动态封装,动态类型,无需类型转换,语法简洁,生命周期和使用场景与ViewData完全一致,仅用于当前控制器到对应视图的传值,不支持跨请求传值。(3)TempData:基于Session实现,生命周期为一次跨请求,支持重定向页面传值、跨控制器传值,数据读取一次后自动清空,适合消息提示、跳转传参等临时数据场景。总结场景:普通页面传值优先用ViewBag;重定向跳转传值必须用TempData。2.简述ASP.NETMVC过滤器的执行顺序及四大过滤器作用详细答案:执行顺序(从先到后):授权过滤器→动作过滤器(执行前)→业务方法执行→动作过滤器(执行后)→结果过滤器(执行前)→视图渲染→结果过滤器(执行后)→异常过滤器(仅报错时触发)四大过滤器核心作用:(1)授权过滤器:优先级最高,用于身份认证、权限校验,判断用户是否登录、是否拥有访问权限,无权限直接拦截请求。(2)动作过滤器:在Action方法执行前后触发,可用于日志记录、参数校验、请求预处理等通用逻辑。(3)结果过滤器:在视图渲染前后触发,可修改视图内容、处理返回结果、统一页面样式等。(4)异常过滤器:全局捕获控制器、Action执行过程中的未处理异常,统一处理报错信息、记录错误日志、跳转错误页面,避免程序直接崩溃。3.简述MVC路由机制的工作原理详细答案:1.项目启动时,RouteConfig.cs会注册全局路由规则,定义URL地址的匹配格式、默认控制器、默认动作方法。2.用户发送浏览器请求后,URL地址会被路由模块拦截,遍历已注册的路由规则进行匹配。3.匹配成功后,路由模块解析出请求对应的控制器名称、动作方法名称、路由参数。4.框架根据解析结果实例化对应控制器,调用指定的Action方法,执行业务逻辑并返回视图或数据。5.若未匹配到任何路由规则,直接返回404页面,提示请求地址不存在。默认路由规则:{controller}/{action}/{id},其中id为可选参数,默认值为空。四、代码实操题(共1题,20分)需求:编写一个用户登录功能(MVC原生实现)要求:1.编写用户实体类(账号、密码);2.编写登录控制器方法,实现数据校验、ModelState验证;3.登录成功跳转首页,失败返回提示信息;4.支持POST请求提交详细参考答案代码:1.新建用户实体模型User.cscsharp

usingSystem.ComponentModel.DataAnnotations;

namespaceMvcDemo.Models

{

publicclassUser

{

[Required(ErrorMessage="账号不能为空")]

publicstringUserName{get;set;}

[Required(ErrorMessage="密码不能为空")]

publicstringPwd{get;set;}

}

}

2.登录控制器LoginController.cscsharp

usingSystem;

usingSystem.Web.Mvc;

usingMvcDemo.Models;

namespaceMvcDemo.Controllers

{

publicclassLoginController:Controller

{

//GET请求:展示登录页面

publicActionResultIndex()

{

returnView();

}

//POST请求:提交登录表单

[HttpPost]

[ValidateAntiForgeryToken]

publicActionResultIndex(Usermodel)

{

//验证模型数据合法性

if(!ModelState.IsValid)

{

//数据校验失败,返回登录页展示错误信息

returnView(model);

}

//模拟数据库账号密码校验

if(model.UserName=="admin"&&model.Pwd=="123456")

{

//登录成功,保存登录状态

Session["UserName"]=model.UserName;

//重定向到首页

returnRedirectToAction("Index","Home");

}

else

{

//登录失败,添加错误提示

ModelState.AddModelError("","账号或密码错误");

returnView(model);

}

}

}

}

3.登录视图Index.cshtml(强类型视图)html

@modelMvcDemo.Models.User

@{

ViewBag.Title="

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论