你好 MVC

ASP.NET MVC 是開源 Web 應用程式框架。MVC 本身是一個圍繞三個主要元件構建的設計模式: 模型 - 檢視 - 控制器

模型 - 模型反映你的業務物件,是在控制器和檢視之間傳遞資料的一種方法。

檢視 - 檢視是向使用者呈現和顯示模型資料的頁面。ASP.NET MVC 檢視通常使用 Razor 語法編寫。

控制器 - 控制器處理來自客戶端的傳入 HTTP 請求,並且通常將一個或多個模型返回到適當的檢視。

ASP.NET MVC 功能:

  1. 非常適合開發複雜但重量輕的應用
  2. 它提供了可擴充套件和可插拔的框架,可以輕鬆更換和定製。例如,如果你不希望使用內建 Razor 或 ASPX View 引擎,則可以使用任何其他第三方檢視引擎,甚至可以自定義現有引擎。
  3. 通過邏輯上將其分為模型,檢視和控制器元件,利用基於元件的應用程式設計。這使開發人員能夠管理大型專案的複雜性並處理單個元件。
  4. MVC 結構增強了應用程式的測試驅動開發和可測試性,因為所有元件都可以基於介面設計並使用模擬物件進行測試。因此,ASP.NET MVC 框架非常適合擁有大量 Web 開發人員的專案。
  5. 支援所有現有的大量 ASP.NET 功能,如授權和身份驗證,母版頁,資料繫結,使用者控制元件,成員資格,ASP.NET 路由等。
  6. 它不使用 View State 的概念(它存在於 ASP.NET 中)。這有助於構建輕量級應用程式併為開發人員提供完全控制。

簡單的 MVC 應用程式

我們將建立顯示人員詳細資訊的簡單 MVC 應用程式。使用 Visual Studio 建立新的 MVC 專案。將名為 Person 的新模型新增到 Models 資料夾,如下所示:

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}

將新控制器新增到 Controllers 資料夾:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}

最後將 View 新增到名為 Index.cshtml 的 / Views / Home / 資料夾中 : **

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>