ASP.NET MVC教程一:ASP.NET MVC簡介


一、MVC模式簡介

MVC模式是一種流行的Web應用架構技術,它被命名為模型-視圖-控制器(Model-View-Controller)。在分離應用程序內部的關注點方面,MVC是一種強大而簡潔的方式,尤其適合應用在Web應用程序中。

MVC將應用程序的用戶界面分為三個主要部分:

  1. 模型:一組類,描述了要處理的數據以及修改和操作數據的業務規則。
  2. 視圖:定義應用程序用戶界面的顯示方式。
  3. 控制器:一組類,用於處理來自用戶、整個應用程序流以及特定應用程序邏輯的通信。

1、MVC在Web框架中的應用

MVC模式經常應用於Web程序設計中。在ASP.NET MVC中,MVC三個主要部分的定義大致如下:

  • 模型:模型是描述程序設計人員感興趣問題域的一些類,這些類通常封裝存儲在數據庫中的數據,以及操作這些數據和執行特定域業務邏輯的代碼。在ASP.NET MVC中,模型就像使用了某種工具的數據訪問層(Daa Access Layer),這種工具包括實體框架(Entity Framework)或者與包含特定域邏輯的自定義代碼組合在一起的其他實體框架。
  • 視圖:一個動態生成HTML頁面的模板。
  • 控制器:一個協調視圖和模型直接關系的特殊類。它響應用戶輸入,與模型進行對話,並決定呈現哪個視圖(如果有的話)。在ASP.NET MVC中,這個類文件通常以后綴名Controller表示。

2、執行順序

在ASP.NET MVC中的執行順序可以用下圖進行表示,如圖所示:

其執行順序可以描述如下:用戶在瀏覽器地址欄里面輸入要訪問的網址,然后發起請求,控制器接收網頁發送的請求,如果需要請求數據,則先從Model里面取出數據交給控制器,然后把數據交給視圖,視圖負責展現數據。如果不需要請求數據,則直接返回視圖呈現給用戶。

二、ASP.NET中的MVC

1、ASP.NET MVC和ASP.NET

  1. ASP.NET MVC是ASP.NET技術的子集。
  2. ASP.NET MVC在ASP.NET核心基礎之上構建:
    1. 依賴於HttpHandler,如請求是如何進入控制器的。
    2. 依賴於Session、Cookie、Cache、Application等狀態保持機制。
    3. 使用HttpContext、Request、Response、Server等對象。
    4. 在Controller使用智能感知很容易得到這些對象。
  3. .NET中編寫Web程序的一種可選方式。

2、ASP.NET MVC和WebForms

  1. ASP.NET MVC和WebForm都是.NET中開發Web程序的一種方式,兩者是一種並列的關系。
  2. WebForm的特點:
    1. 所見即所得,開發傻瓜式:服務器端控件、事件模型、狀態管理。
    2. 借鑒了Winform的成功特色。
    3. 偏離了Web請求處理的原理(請求->處理->響應)。
  3. ASP.NET MVC的特點:
    1. 關注分離:
      1. WebForm只是把一個頁面分成了前置頁面和后置代碼,分離的不夠徹底。
      2. MVC可以把一個頁面分成Controller、View、Model三部分,分離的更徹底。
    2. 測試性強。可以針對Controller、View、Model單獨進行測試。
    3. 更加接近Web請求處理的本質。

三、創建ASP.NET MVC

下面使用Visual Studio2019創建一個ASP.NET MVC項目,其他版本的Visual Studio創建ASP.NET MVC步驟一致。

1、選擇文件->新建->項目

如下圖所示:

2、選擇.NET Framework版本的ASP.NET MVC

如下圖所示:

然后點擊“下一步”按鈕。

3、配置項目名稱和路徑

 最后點擊“創建”按鈕,然后會彈出創建新的ASP.NET Web應用程序對話框,該對話框列出了所有ASP.NET應用程序共有的一些選項,如下圖所示:

  • 選擇模板。
  • 添加框架特定的文件夾和核心引用。
  • 添加單元測試。
  • 配置身份驗證。
  • 添加Docker支持。

選擇模板和添加文件夾和核心引用共同起作用。模板選擇了一個起點,然后使用框架復選框來添加對WebForms、MVC和Web API的支持。這意味着我們可以選擇一個MVC模板,然后添加Web Forms支持,或者可以選擇空模板,添加對任意框架的支持。這種功能不只在創建新項目時可以使用:任何時候都可以添加對任意框架的支持,因為框架文件夾和核心引用是通過NuGet包添加的。

3.1、選擇一種應用程序模板

下面對這些模板進行介紹:

  • 空(Empty):可以想見,空模板會建立一個空的項目骨架。得到的文件包括一個web.config(包含一些默認的網站配置設置)和創建項目所需的幾個程序集引用,但是僅此而已。這個模板不會提供代碼,不包含JavaScript或CSS腳本文件,甚至不會提供一個靜態的HTML文件。
  • Web Forms:Web Forms模板為ASP.NET Web Forms開發打下基礎。
  • MVC:MVC模板設置一個標准的、帶幾個視圖的HomeController,配置站點布局,並包含一個MVC特定的HTML頁面。
  • Web API:使用此模板創建的應用程序同時支持MVC和Web API。包含MVC支持,部分是為了顯示API Help頁面,它們記錄了公有API簽名。
  • 單頁應用程序(Single Page Application):單頁應用程序模板創建的應用程序主要通過JavaScript請求Web API服務驅動,而不是采用傳統的Web頁面請求/響應周期。

3.2、測試

所有的內置項目模板都有一個選項,用來使用樣本單元測試創建單元測試項目。

推薦選中“創建一個單元測試項目”復選框

3.3、配置身份驗證

單擊“更改”按鈕,可以打開更改身份驗證對話框,從中可以選擇身份驗證方法,如下圖所示:

對話框中列出了4個選項:

  • 不進行身份驗證:用於不需要身份驗證的應用程序,例如沒有管理單元的公共網站。
  • 個人用戶賬戶:用於在本地存儲用戶配置文件(如在SQL Server數據庫中存儲)的應用程序。支持用戶名/密碼賬號,以及社交認證提供程序。
  • 工作或學校賬戶:用於通過某種形式的活動目錄(包括Azure Active Directory和Office365)進行身份驗證的賬戶。
  • Windows身份驗證:用於內部網應用程序。
這里為了演示方便,選擇“不進行身份驗證”

 最后點擊“創建”按鈕,完成ASP.NET MVC應用程序的創建:

 


免責聲明!

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



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