ASP.NET MVC 工程师笔试真题及详细答案(完整版)_第1页
ASP.NET MVC 工程师笔试真题及详细答案(完整版)_第2页
ASP.NET MVC 工程师笔试真题及详细答案(完整版)_第3页
ASP.NET MVC 工程师笔试真题及详细答案(完整版)_第4页
ASP.NET MVC 工程师笔试真题及详细答案(完整版)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

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

文档简介

ASP.NETMVC工程师笔试真题及详细答案(完整版)适用岗位:.NET后端开发、ASP.NETMVC开发工程师题型:选择题、填空题、简答题、问答题、实操题特点:均为企业高频笔试、面试原题,答案贴合实际开发场景,通俗易懂、无空话套话一、单项选择题(10题,每题3分,共30分)1.ASP.NETMVC的设计模式核心是MVC分层,以下对应正确的是()A.Model视图、View数据、Controller控制B.Model业务数据与逻辑、View展示页面、Controller请求调度C.Model页面渲染、View数据绑定、Controller数据处理D.Model控制器、View视图、Controller模型答案:B详细解析:MVC三者各司其职,Model负责封装数据、业务逻辑和数据访问;View只负责页面展示、数据渲染,不处理业务;Controller接收浏览器请求、调用业务逻辑、跳转视图或返回数据,是整个请求的调度核心。2.以下不属于ASP.NETMVC路由规则组成部分的是()A.控制器名称B.动作方法名称C.数据库连接名D.参数答案:C详细解析:MVC路由默认格式为{controller}/{action}/{id},由控制器、方法、路由参数组成,和数据库连接配置无关。3.MVC中ActionResult的主要作用是()A.接收前端参数B.封装控制器返回结果,支持视图、跳转、文件、JSON等多种返回类型C.操作数据库D.绑定页面模型答案:B详细解析:ActionResult是所有返回结果的基类,控制器所有方法基本都返回该类型,可实现返回视图、重定向、返回JSON、文件下载、空白页面等多种后端响应方式。4.关于ViewBag和ViewData说法正确的是()A.二者生命周期完全一致B.ViewBag动态类型,ViewData字典类型C.ViewData可以跨页面传值D.ViewBag需要强制类型转换答案:B详细解析:ViewBag是dynamic动态类型,使用简洁无需强转;ViewData是Dictionary字典类型,取值需要强制类型转换。两者生命周期一致,仅当前视图有效,无法跨请求、跨页面传值。5.MVC中用来实现模型数据验证、前端后端统一校验的特性是()A.路由特性B.数据注解特性C.缓存特性D.过滤器特性答案:B详细解析:通过给实体属性添加[Required]、[StringLength]、[RegularExpression]等数据注解,可自动实现后端校验,配合前端jquery.validate可完成前后端统一验证。之前6.以下哪种过滤器在Action执行执行()A.IActionFilter(OnActionExecuting)B.IResultFilterC.IExceptionFilterD.IAuthorizationFilter答案:A详细解析:OnActionExecuting在Action方法执行前触发;OnActionExecuted在方法执行后触发;授权过滤器优先级最高,异常过滤器仅在报错时触发。7.MVC中实现页面重定向跳转,正确写法是()A.returnView()B.returnRedirectToAction()C.returnJson()D.returnFile()答案:B详细解析:RedirectToAction用于跳转到本项目控制器的其他方法;Redirect用于跳转外部链接;View是返回当前视图,不会跳转。8.关于MVC模型绑定说法错误的是()A.自动将前端表单数据绑定到控制器参数B.支持基本数据类型、实体类、集合类型绑定C.需要手动写代码接收表单参数D.绑定失败可通过ModelState判断状态答案:C详细解析:MVC自带模型绑定机制,无需手动获取Request.Form取值,框架自动匹配参数名称完成赋值,大幅简化开发。9.以下不属于MVC过滤器的是()A.授权过滤器B.异常过滤器C.路由过滤器D.结果过滤器答案:C详细解析:MVC五大常用过滤器:授权过滤器、动作过滤器、结果过滤器、异常过滤器、资源过滤器,无路由过滤器。10.MVC中TempData的特点是()A.永久保存数据B.跨请求传值,读取一次后自动销毁C.仅当前页面有效D.可全局所有页面访问答案:B详细解析:TempData基于Session实现,主要用于跳转页面后传值,数据读取一次后自动清除,适合提示消息、跳转传参场景。二、填空题(5题,每题3分,共15分)1.ASP.NETMVC项目默认路由规则为________。答案:{controller}/{action}/{id}2.MVC中判断模型数据是否验证通过的属性是________。答案:ModelState.IsValid3.实现控制器方法权限拦截、登录验证,最常用的过滤器是________。答案:授权过滤器(AuthorizeAttribute)4.MVC中返回JSON格式数据的方法是________。答案:Json()5.页面视图中引入布局页、统一公共头部底部的文件是________。答案:_Layout.cshtml三、简答题(4题,每题5分,共20分)1.简述WebForm和ASP.NETMVC的核心区别?答案:1)架构不同:WebForm是控件化、事件驱动模式,页面和后台代码耦合度高;MVC是分层架构,视图、控制器、模型分离,结构清晰。2)开发模式不同:WebForm封装大量控件,开发快但灵活性差;MVC原生手写页面代码,更贴合前端开发,适配前后端交互。3)路由机制不同:WebForm基于物理文件路径访问;MVC基于路由规则匹配控制器和方法,URL更简洁规范。4)测试性不同:MVC控制器可脱离页面独立测试,单元测试友好;WebForm耦合高,难以单元测试。2.简述ViewData、ViewBag、TempData三者区别?答案:1)ViewData:字典类型,视图内传值,跨页面失效,取值需要强转,生命周期最短。2)ViewBag:动态类型,基于ViewData封装,用法更简洁,无需强转,生命周期和ViewData一致,仅当前视图有效。3)TempData:基于Session,支持页面跳转传值,跨请求有效,数据读取一次后自动销毁,适合弹窗提示、跳转消息传递。3.MVC过滤器的执行顺序是什么?答案:1.授权过滤器→2.资源过滤器→3.动作执行前过滤器→4.执行Action方法→5.动作执行后过滤器→6.结果执行前过滤器→7.渲染页面→8.结果执行后过滤器若程序出现异常,会优先触发异常过滤器拦截错误信息。4.什么是MVC模型绑定,工作原理是什么?答案:模型绑定是MVC内置的自动参数赋值机制。前端通过表单、URL、AJAX传递的参数,框架会根据参数名称、实体属性名称自动匹配,封装到控制器的参数或实体对象中,无需手动从Request对象获取数据。绑定完成后可通过ModelState.IsValid判断数据是否符合验证规则,快速实现数据校验。四、问答题(3题,每题7分,共21分)1.如何在MVC中统一处理全局异常?答案:项目开发中不需要每个控制器单独写try-catch,可通过全局异常过滤器统一处理:1)自定义异常过滤器,继承IExceptionFilter,重写OnException方法;2)在方法中捕获系统异常,记录错误日志、异常信息、请求地址、用户信息;3)判断请求类型,页面请求跳转错误页面,AJAX请求返回统一错误JSON;4)在FilterConfig中注册全局过滤器,整个项目所有控制器报错都会统一拦截处理,避免重复代码。2.MVC中Action方法如何限制只允许AJAX请求访问?答案:两种常用方式:1)使用内置特性[AjaxOnly],直接标记在Action方法上,非AJAX请求直接拒绝访问;2)手动判断请求头,在方法内部通过Request.IsAjaxRequest()判断,返回对应提示或跳转。开发中优先使用[AjaxOnly],代码简洁、通用性强,适合所有接口类方法。3.简述MVC路由原理,以及路由注册流程?答案:路由的核心作用是将浏览器的URL地址,匹配到对应的控制器和动作方法。注册流程:项目启动时,Global.asax执行Application_Start,调用RouteConfig.RegisterRoutes方法,注册默认路由规则。用户发起请求后,框架根据URL路径,按照路由规则依次匹配,解析出控制器名、方法名、路由参数,自动实例化控制器并执行对应方法。支持自定义路由、路由约束、路由优先级配置,可实现个性化URL地址规则。五、实操编程题(1题,14分)题目:使用ASP.NETMVC实现简单的用户登录功能,包含:数据验证、登录判断、登录成功跳转、错误提示完整参考答案:1.新建用户实体类UserPlainText

publicclassUser

{

[Required(ErrorMessage="用户名不能为空")]

publicstringUserName{get;set;}

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

publicstringPwd{get;set;}

}2.登录控制器LoginControllerPlainText

publicclassLoginController:Controller

{

//展示登录页面

publicActionResultIndex()

{

returnView();

}

//登录提交方法

[HttpPost]

publicActionResultIndex(Usermodel)

{

//后端数据验证

if(!ModelState.IsValid)

{

returnView(model);

}

//模拟数据库登录校验

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

{

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

Session["UserName"]=model.UserName;

//跳转到首页

returnRedirectToAction("Index","Home");

}

else

{

//错误提示

TempData["Msg"]="用户名或密码错误!";

returnView(model);

}

}

}3.登录视图页面Index.cshtmlPlainText

@modelUser

@{

ViewBag.Title="用户登录";

}

<h3>用户登录</h3>

@if(TempData["Msg"]!=null)

{

<divstyle="color:red">@TempData["Msg"]</div>

}

@using(Html.BeginForm())

{

<p>用户名:@Html.TextBoxFor(m=>m.UserName)@Html.ValidationMessageFor(m=>m.UserName)</p>

<p>密码:@Html.PasswordFor(m=>m.Pwd)@Html.ValidationMessageFor(m=>m.Pwd)</p>

<p><buttontype="submit">登录</button></p>

}功能说明:1.利用数据注解实现前端后端非空验证;2.通过ModelState.IsValid校验数据合法性;3.登录成功保存Session、页面跳转;4.登录失败通过TempData传递错误提示,页面展示报错信息。六、附加高频面试笔问题(附赠)1.MVC中Html.ActionLink和Url.Action的区别?答:Html.ActionLink直接生成a标签超链

温馨提示

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

评论

0/150

提交评论