基于.Net Framework的asp.net mvc 和Web API实行流程和周期

打印 上一主题 下一主题

主题 1765|帖子 1765|积分 5295

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ASP.NET MVC 和 Web API 的实行流程和生命周期,需要结合请求处理处罚管道、焦点组件以及生命周期方法进行阐述。
ASP.NET MVC 实行流程

当一个请求进入 ASP.NET MVC 应用时,会颠末以下几个焦点阶段:
1. 请求进入 IIS



  • IIS 处理处罚请求:IIS 吸收到 HTTP 请求后,决定怎样处理处罚它(静态资源 vs 动态请求)。
  • 应用程序池:如果是 ASP.NET 请求,IIS 通过 Application Pool 将请求转发给 ASP.NET 运行时
  • ASP.NET 管道:请求颠末 HttpRuntime,最终进入 ASP.NET MVC 框架处理处罚流程。
2. ASP.NET MVC 处理处罚流程


  • Routing(路由匹配)

    • RouteTable 由 Application_Start 方法在 Global.asax 中初始化。
    • 请求通过 UrlRoutingModule 解析,并匹配到 RouteConfig 中定义的路由规则。

  • Controller 创建

    • MvcHandler 通过 IControllerFactory 实例化 Controller
    • 默认利用 DefaultControllerFactory 进行创建。

  • Action 方法实行

    • ControllerActionInvoker 调用对应的 Action 方法,支持依赖注入和参数绑定(Model Binding)。

  • 实行过滤器(Filters)(生命周期钩子)
    ASP.NET MVC 提供了 4 种过滤器:

    • Authorization Filters (AuthorizeAttribute) – 查抄用户权限。
    • Action Filters (OnActionExecuting / OnActionExecuted) – 在 Action 实行前后触发。
    • Result Filters (OnResultExecuting / OnResultExecuted) – 在视图返回前后触发。
    • Exception Filters (OnException) – 捕获非常并处理处罚。

  • 返回 ActionResult

    • ViewResult(返回视图)。
    • JsonResult(返回 JSON 数据)。
    • RedirectResult(跳转到其他 URL)。

  • View 视图引擎渲染

    • MVC 默认利用 Razor 视图引擎 解析 cshtml 页面。
    • 视图引擎通过 ViewData / ViewBag 或 Model 渲染数据。

  • 相应返回给客户端

    • Response 对象封装最终的 HTML 或 JSON 结果返回给客户端。


ASP.NET Web API 实行流程

Web API 的实行流程与 MVC 类似,但更轻量级,适用于 RESTful 服务。
1. 请求进入 IIS 和 ASP.NET 运行时



  • IIS 吸收 HTTP 请求,并将其传递给 ASP.NET 运行时(或 Kestrel 在 .NET Core)。
  • 请求进入 ASP.NET 管道,并通过 HttpServer 交由 Web API 处理处罚。
2. 路由匹配



  • Web API 利用 WebApiConfig 进行路由配置(基于 RouteAttribute 或 MapHttpRoute)。
  • HttpRoutingDispatcher 解析路由信息,确定请求的 ControllerAction
3. 创建 Controller 并调用 Action



  • IHttpControllerActivator 负责创建 Web API Controller(支持依赖注入)。
  • ApiControllerActionInvoker 负责实行 Action 方法
  • 参数绑定(Model Binding):基于 FromBody、FromUri 进行数据解析。
4. 过滤器实行(类似 MVC)



  • Authentication Filters(认证)。
  • Authorization Filters(授权)。
  • Action Filters(实行前后逻辑)。
  • Exception Filters(错误处理处罚)。
5. 实行 Action 逻辑,返回 IHttpActionResult



  • IHttpActionResult 作为标准返回范例,支持 Ok(), BadRequest(), NotFound(), Json() 等方法。
  • 结果颠末 ContentNegotiation(内容协商),决定返回 JSONXML 或其他格式的数据。
6. 相应返回给客户端



  • HttpResponseMessage 通过 HttpControllerDispatcher 返回给 HttpServer。
  • HTTP 相应最终返回到客户端。

ASP.NET MVC 和 Web API 的主要区别

关键点ASP.NET MVCASP.NET Web API适用场景Web 应用,返回 HTMLRESTful API,返回 JSON/XML控制器基类ControllerApiController视图支持支持 Razor 视图引擎无视图,仅返回数据结果范例ActionResultIHttpActionResult 或 HttpResponseMessage过滤器ActionFilterAttributeActionFilterAttribute(但作用于 API 级别)路由方式routes.MapRouteconfig.MapHttpRouteModel Binding主要绑定 Form 数据FromBody, FromUri, Model Binding
口试高频题目


  • ASP.NET MVC 和 Web API 的焦点区别?

    • MVC 主要用于返回 HTML,适用于 Web 应用。
    • Web API 主要用于 RESTful 服务,返回 JSON/XML 等格式的数据。

  • MVC 过滤器(Filters)有哪些?

    • Authorization Filters(权限验证)。
    • Action Filters(Action 实行前后)。
    • Result Filters(Result 天生前后)。
    • Exception Filters(非常处理处罚)。

  • Web API 的 Model Binding 方式有哪些?

    • FromUri(从 URL 解析参数)。
    • FromBody(从请求体解析参数)。
    • Model Binding(自动解析 complex type 参数)。

  • ASP.NET MVC 和 Web API 的路由机制有什么区别?

    • MVC 接纳 routes.MapRoute,基于 Controller 和 Action。
    • Web API 接纳 config.MapHttpRoute,更适用于 RESTful 计划。

  • 怎样在 Web API 中实现内容协商(Content Negotiation)?

    • 通过 Accept 头自动匹配 JSON 或 XML 返回格式。
    • 可以自定义 MediaTypeFormatter 以支持自定义格式。


如果是高阶口试,还可以深入 中间件、身份验证(JWT)、非常处理处罚、DI 依赖注入、性能优化(如缓存、压缩) 等内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表