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>