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