asp.net-mvcasp.net-mvc入門


備註

模型 - 視圖 - 控制器(MVC)架構模式將應用程序分為三個主要組件:模型,視圖和控制器。 ASP.NET MVC框架提供了用於創建Web應用程序的ASP.NET Web窗體模式的替代方法。 ASP.NET MVC框架是一個輕量級,高度可測試的表示框架(與基於Web窗體的應用程序一樣)與現有的ASP.NET功能集成在一起,例如母版頁和基於成員身份的身份驗證。 MVC框架在System.Web.Mvc程序集中定義。

MVC框架包括以下組件:

  • 模特 。模型對像是實現應用程序數據域邏輯的應用程序的一部分。通常,模型對象檢索並存儲數據庫中的模型狀態。例如,Product對象可能從數據庫檢索信息,對其進行操作,然後將更新的信息寫回SQL Server數據庫中的Products表。在小型應用程序中,模型通常是概念分離而不是物理分離。例如,如果應用程序僅讀取數據集並將其發送到視圖,則應用程序不具有物理模型層和關聯的類。在這種情況下,數據集承擔模型對象的角色。
  • 意見 。視圖是顯示應用程序用戶界面(UI)的組件。通常,此UI是根據模型數據創建的。一個示例是Products表的編輯視圖,該表根據Product對象的當前狀態顯示文本框,下拉列表和復選框。
  • 控制器 。控制器是處理用戶交互,使用模型,最終選擇要顯示UI的視圖的組件。在MVC應用程序中,視圖僅顯示信息;控制器處理並響應用戶輸入和交互。例如,控制器處理查詢字符串值,並將這些值傳遞給模型,而模型又可以使用這些值來查詢數據庫。

版本

.NET版本發布日期
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011-01-13
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 二〇一三年十月十七日
MVC 5.1 .NET 4.5 2014年1月17日
MVC 5.2 .NET 4.5 2014年8月28日
MVC 6.0 .NET 4.5 二零一五年十一月十八日
核心MVC 1.0 .NET 4.5 2016年7月12日
核心MVC 1.1 .NET 4.5 2016年11月18日

你好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>