ASP.NET MVC 执行流程?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET MVC 执行流程?相关的知识,希望对你有一定的参考价值。

ASP.NET MVC 执行流程?

参考技术A 请求-》路由-》Controller-》Action-》数据绑定-》View

1.ASP.net MVC入门基础


1. ASP.NET MVC基础

1.1. 一次请求的生命周期

  • 一次请求从客户端/浏览器开始,客户端将请求发送给IIS,IIS启动ASP.NET MVC对应的应用程序。

  • 在ASP.NET MVC内部,通过路由(Routing)开始匹配的路由规则。

  • 在执行Action之前,首先会执行 Action 对应的 Filter,如 [Authorize]

  • 然后执行 Action,这里便是执行我们的业务逻辑。

  • 如果有视图/页面,View Engine返回相应的HTML。

  • 在Action执行完成后,照样可以执行Filter来处理相应逻辑。

 

1.2. Application 启动

1.ASP.net MVC入门基础

  • MvcApplication继承自 HttpApplication 类,ASP.NET MVC启动后,首先执行的就是这个类。

  • 最先进入的是 Application_Start 方法,在这个方法里,可以初始化基本的应用/类库。

  • 另一种初始化方式如上图中的下方的代码截图,以特性的方式初始化应用/类库。

 

 1.3. Routing 两种形式

 1.ASP.net MVC入门基础

 在ASP.NET MVC 5中,定义Route有两种形式:

  • 在 Application_Start 中定义 Route, 如上图中上方截图。

  • 在 Controller/Action 中以 Attribute 方式直接定义 Route,如上图中下方截图。

 1.4. Filters (ActionFilterAttribute)

 1.ASP.net MVC入门基础

  • 前面我们提到过,在执行Action之前和之后,可以执行一些Filter处理一些事情,如 [Authorize],就是在执行 Action 之前,判断必须有账号登录。

  • 我们也可以自定义一些Filter来处理我们自己的事情,如角色权限判断,上图中左侧截图即是一个自定义的 Filter。

1.5. Controller & Action

1.ASP.net MVC入门基础

  • Controller是所有Controller的基类,所有Controller必须继承自Controller类。

  • Controller类可以使用 Filter,表示此类下的所有Action都应用这个 Fitler。

  • Action可以应用 GET, POST, PUT 和 DELETE 等方法。

  • Action返回的结果可以是 View, PartialView, Redirect, Json, JavaScript, Content 和 File 等类型。

1.6. View / View Engine

  • View Engine可以被重写和定义,这里使用的 Razor View Engine。

  • 使用 View() 和 PartialView() 返回视图/HTML。

  • 查找视图时,如果未指定路径,默认查找无则是 Views/{controller name}/{action name}.cshtml,如果没有则查找 Views/Shared/{action name}.cshtml。

  • Shared/_Layout.cshtml是View的默认框架模板,也可以View中单独指定。


       

更多技术请关注


   


  

以上是关于ASP.NET MVC 执行流程?的主要内容,如果未能解决你的问题,请参考以下文章

C# & ASP.NET MVC 5 - 从按钮单击执行存储过程,没有返回值

图解 ASP.NET MVC 请求处理流程

ASP.NET执行模型之IIS服务器处理流程

[ASP.NET MVC] ASP.NET Identity登入技术剖析

asp.net 微信企业号办公系统-流程设计--流程步骤设置-按钮设置

ASP.NET MVC 中密码重置的最佳实践