ps:博主的.net core学习交流群—qq裙:831181779

1. MVC中的视图是用来干什么的?

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)

从结构上看,可以分成三层,

1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。

2. MVC与webform相比有什么优势?

MVC的优点:

1.通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合。

2.没有服务器表单控件,可以更方便的控制应用程序的行为

3.应用程序通过Controller来控制程序请求,并提供了原生的UrlRouting功能来重写Url。

4.使Web程序对单元测试的支持更加出色

5.强类型view实现,更安全,更高效。

3. MVC有多少种不同类型的结果类型,请详细描述。

有12种,最主要的是ActionResult类,它是一个基础类,它有11个子类型。

ViewResult - 给响应流渲染指定的视图

PartialViewResult - 给响应流渲染指定的局部视图

EmptyResult - 返回空的响应结果。

RedirectResult - 执行一个HTTP转向到指定的URL。

RedirectToRouteResult -执行一个HTTP转向到一个URL,这个URL由基于路由数据的路由引擎来决定

JsonResult - 序列化一个ViewData对像到JSON格式。

JavaScriptResult - 返回一段Javascript代码,它可以在客户端执行。

ContentResult - 写内容到响应流,不需要视图支持。

FileContentResult - 返回一个文件到客户端。

FileStreamResult - 返回一个文件到客户端,它提供的是流。

FilePathResult - 返回一个文件到客户端。

4. mvc过滤器你使用过吗?用来做什么?

ActionFilter(方法过滤器):接口名为[IActionFilter],在控制器方法调用前/后执行

ResultFilter(结果过滤器):接口名为[IResultFilter],在控制器方法调用完,跳转至view页面前/后执行

AuthorizationFilter(授权过滤器):接口名为[IAuthorizationFilter],所有过滤器中最先执行的

ExceptionFilter(异常处理过滤器):接口名为[IExceptionFilter],在控制器方法抛出异常时执行

5. MVC的生命周期是怎样的?

1) Request 请求到来

2) IIS 根据请求特征将处理权移交给 ASP.NET

3) UrlRoutingModule将当前请求在 Route Table中进行匹配

4) UrlRoutingModule在RouteCollection中查找Request匹配的RouteHandler,默认是MvcRouteHandler MvcRouteHandler 创建 MvcHandler实例.

5) MvcHandler执行 ProcessRequest.

6) MvcHandler 使用 IControllerFactory 获得实现了IController接口的实例,找到对应的HomeController

7) 根据Request触发HomeController的Index方法

8) Index将执行结果存放在ViewData

9) HomeController的Index方法返回 ActionResult

10) Views/Home/Index.aspx将 ViewData呈现在页面上

11) Index.aspx执行ProcessRequest方法

12) Index.aspx执行Render方法 输出到客户端

6. MVC与三层架构比最主要的优势是什么?

三层是: UI 界面层

BLL 业务逻辑层

DAL数据访问层

(特殊的Model实体层)

MVC是:

M Model(模型层) 业务逻辑以及数据库的交互

V View(视图层) 显示数据和提交数据

C Controller(控制器) 负责从视图读取数据,控制用户输入,并向模型发送数据。

两者的区别

三层的 UI = MVC的 View

三层的 Model+ BLL+DAL = MVC的 Model

MVC优点

易于进行单元测试

易于进行测试驱动开发

低耦合性、高重用性、可适用性

较低的生命周期成本

快速的部署

可维护性

有利于软件工程化管理

MVC缺点

内部结构复杂

7. Request与Response的下面有什么方法和作用

Request类:1.getSession():获取Session对象

2.getCookies():获取所有的Cookie,返回一个Cookie数组

3.getMethod():获取请求类型

Response类:1.setHeader():设置消息头

2.addCookie():添加Cookie

3.setContentType():告知浏览器数据类型

8. post和get的区别。

\1. get/post均可向服务器传送页面数据。

\2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

\3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

\4. get传送的数据量较小不能大于**2KBpost传送的数据量较大,一般被默认为不受限制**。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

\5. get安全性非常低post**安全性较高**。但是执行效率却比Post方法好。

建议:

1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

.NET面试题——第5篇 ASP.NET MVC面试题相关推荐

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

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

  2. Android面试题之ContentProvider篇,安卓工程师面试题及答案

    前言 最近经常被朋友问到的两个问题. 问题一: "从事IT工作3年了,做技术好累啊,是不是做到30岁就不能继续往下做啊?"问题二: "我已经30岁了,还能不能学编程?&q ...

  3. ASP.NET MVC的View是如何呈现出来的[实例篇]

    在<[设计篇]>篇中我们通过对View引擎的总体介绍讲述了从ViewResult的创建到View呈现的原理,为了让读者对View引擎及其View呈现机制具有一个深刻的认识,我们自定义一个简 ...

  4. 2023前端大厂面试题之JavaScript篇(4)

    系列文章: 2023前端大厂面试题之JavaScript篇(1) 2023前端大厂面试题之JavaScript篇(2) 2023前端大厂面试题之JavaScript篇(3) 2023前端大厂面试题之J ...

  5. 2022前端大厂面试题之JavaScript篇(1)

    系列文章: 2022前端大厂面试题之JavaScript篇(1) 2022前端大厂面试题之JavaScript篇(2) 2022前端大厂面试题之JavaScript篇(3) 2022前端大厂高频面试题 ...

  6. [ASP.NET MVC 小牛之路]10 - Controller 和 Action (2)

    继上一篇文章之后,本文将介绍 Controller 和 Action 的一些较高级特性,包括 Controller Factory.Action Invoker 和异步 Controller 等内容. ...

  7. ASP.NET MVC 5 入门指南汇总

    原文:ASP.NET MVC 5 入门指南汇总 经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章 ...

  8. How ASP.NET MVC Works?

    一.ASP.NET + MVC IIS与ASP.NET管道 MVC.MVP以及Model2[上篇] MVC.MVP以及Model2[下篇] ASP.NET MVC是如何运行的[1]: 建立在" ...

  9. 前端面试题之计算机网络篇

    前端面试题之计算机网络篇 一.HTTP协议 1. GET和POST的请求的区别 2. POST和PUT请求的区别 3. 常见的HTTP请求头和响应头 4. HTTP状态码304是多好还是少好 5. 常 ...

最新文章

  1. python中get和set使用_Python对象属性的set和get方法
  2. Java就业难不难?是否要参加Java培训?
  3. GRE核心词汇助记与精练-List11弯、折、扭
  4. 网站扛住 100 亿次请求?我们来压测试一试
  5. 通话录音_iOS 14将支持通话录音功能,但有隐性使用条件
  6. MYSQL ERROR 1045 错误的解决办法 (转)
  7. C#编译器对泛型方法调用作类型推断的奇怪问题
  8. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第一章
  9. shell脚本中的 EOF 是什么意思?
  10. PG-Strom源码分析
  11. CnOpenData中国上市公司投资者关系管理数据
  12. 制作NGUI动态字体
  13. 腾讯企业邮箱申请步骤
  14. 开源消息总线eventBus学习
  15. ViewPager系列之ViewPager无限循环滑动
  16. 几款实用的内网穿透工具,推荐
  17. 物联网卡为什么不能更换设备?想更换怎么办?
  18. (四)联想词和top热词的设计与开发
  19. proteus仿真串口打印
  20. 201512683信息检索知识

热门文章

  1. sierpinski三角形的维数_谢尔宾斯基(Sierpinski)三角形
  2. vue 视频流媒体播放
  3. 区块链工程师的总结血泪史
  4. CentOS7搭建GateOne,实现WebSSH
  5. session的详细解释
  6. Linux中ip经常改变解决(本人亲测,有效)
  7. css两个盒子之间只显示一条边框_css如何去掉重叠部分的边框?
  8. 整理Python lxml读写xml文件详细教程
  9. java jre 配置_Java环境的配置
  10. 计算机毕设项目 Spark图计算的社会网络分析系统-顶点分析(源码+论文)