深度解析 ASP.NET MVC 5 (內部培訓講義)


深度解析 ASP.NET MVC 5

分享公司內部培訓資料,如有錯誤,請批評指正。

  1. ASP.NET MVC基礎
  2. IoC容器
  3. ASP.NET MVC可擴展性
  4. ASP.NET MVC Filters & Cache
  5. ASP.NET MVC AJAX
  6. ASP.NET MVC Client Validation
  7. 資源文件目錄結構
  8. Model目錄結構
  9. View目錄結構
  10. View分解原則
  11. 關於Web.config

 

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 啟動

  • MvcApplication繼承自 HttpApplication 類,ASP.NET MVC啟動后,首先執行的就是這個類。
  • 最先進入的是 Application_Start 方法,在這個方法里,可以初始化基本的應用/類庫。
  • 另一種初始化方式如上圖中的下方的代碼截圖,以特性的方式初始化應用/類庫。

 

 1.3. Routing 兩種形式

 

 在ASP.NET MVC 5中,定義Route有兩種形式:

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

 1.4. Filters (ActionFilterAttribute)

 

  • 前面我們提到過,在執行Action之前和之后,可以執行一些Filter處理一些事情,如 [Authorize],就是在執行 Action 之前,判斷必須有賬號登錄。
  • 我們也可以自定義一些Filter來處理我們自己的事情,如角色權限判斷,上圖中左側截圖即是一個自定義的 Filter。

1.5. Controller & Action

  • 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中單獨指定。

2. IoC容器

2.1. 什么是IoC容器?

2.2. Unity

3. ASP.NET MVC可擴展性

3.1. Controller 擴展性

 

 3.2. Model 擴展性

3.3. View Engine

 

4. ASP.NET MVC Filters & Cache

 

5. ASP.NET MVC AJAX

 6. ASP.NET MVC Client Validation

 

7. 資源文件目錄結構

8. Model目錄結構

9. View目錄結構

 

10. View分解原則

11. 關於Web.config

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM