解釋 ASP.NET 中的 MVC 模式


MVC 代表模型-檢視-控制器。它是一種用於軟體應用程式的架構模式。Trygve Reenskaug 於 1979 年提出了該模式,用於開發互動式應用程式。在這種模式下,應用程式被劃分為三個元件:模型、檢視和控制器。

模型

模型維護應用程式的狀態。狀態可以是瞬態的,即儲存在記憶體中,也可以是持久化的,即儲存到資料庫中。

模型不僅僅是持有狀態。它對資料執行業務邏輯,對資料強制執行業務規則,並且可以使用領域模型來操作資料。模型充當守門人和資料儲存。

檢視

檢視根據模型中的資料生成並顯示使用者介面。在收到請求後,模型從資料庫或記憶體中獲取資料,處理它,並將其傳遞給檢視。然後,檢視決定如何將該資料呈現給使用者。

控制器

控制器協調應用程式流程,並在檢視和控制器之間充當中間人。

控制器接收請求。根據請求的內容,控制器使用模型構建資料,然後將其轉發給檢視進行顯示。

這是一個說明 Web 應用程式上下文中 MVC 模式的圖表。箭頭上的數字表示使用者請求的處理順序。

  • 使用者與 Web 應用程式互動,該應用程式嚮應用程式傳送 HTTP 請求。此請求由控制器攔截和處理。

  • 控制器使用來自請求的資料來呼叫領域模型。

  • 領域模型從資料庫(或外部資源)獲取資料,強制執行業務規則並根據業務邏輯處理資料

  • 處理後的資料返回給控制器。

  • 控制器將資料傳遞給檢視。檢視使用 HTML 模板和資料生成使用者介面。

  • 然後,檢視將生成的 HTML 傳送到 Web 應用程式,然後由瀏覽器顯示。

MVC 模式確保了“關注點分離”原則。例如,檢視從不處理傳入資料,模型不關心如何顯示資料,控制器不執行任何業務邏輯。每個元件都有其明確定義的職責。這使得應用程式易於開發和維護,因為它隨著複雜性的增加而增長。

最初,MVC 模式是為了簡化在桌面執行的傳統 GUI 應用程式的開發而開發的。後來它被用於 Web 應用程式。Ruby on Rails 框架推廣了 MVC 模式,後來被其他框架採用。

在 ASP.NET 應用程式中,MVC 元件由 C# 類處理。例如,這是一個表示使用者的模型類。

示例

現場演示

// Models/User.cs
namespace app.Models{
   public class User{
      public int ID { get; set; }

      public string Name { get; set; }

      public string Salary { get; set; }
   }
}

渲染使用者的檢視可能如下所示

// Views/User.cshtml
<div class="user">
   <div class="name">
      <a href="/users/@user.ID">@user.Name</a>
   </div>

   <div class=salary>
      @user.Salary
   </div>
</div>

最後,這是一個透過獲取使用者模型為使用者構建檢視的控制器。

// Controllers/UserController
namespace app.Controllers{
   public class UserController : BaseController{
      public IActionResult User(int id){
         // Get the user from the database
         User user = _service.GetUser(id);

         // Render the user.cshtml view, by providing the user model
         return View(user);
      }
   }
}

更新於: 2021-06-22

251 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告