MVC 架构教程

1. 概述

MVC(Model-View-Controller)是一种软件设计模式,广泛用于开发用户界面。它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。每个组件都有其特定的职责,通过这种方式,MVC 架构提高了代码的可维护性和可扩展性。

1.1 MVC 架构的优点

  • 分离关注点:将应用程序的不同方面(数据、用户界面、控制逻辑)分离,使得代码更易于维护和扩展。
  • 可重用性:视图和模型可以独立于控制器进行重用,提高了代码的复用性。
  • 易于测试:每个组件都可以独立测试,简化了单元测试的过程。

2. MVC 组件详解

2.1 模型(Model)

模型代表应用程序的数据和业务逻辑。它负责处理数据的存储、检索和更新。模型不依赖于视图或控制器,因此可以独立于用户界面进行开发和测试。

代码示例

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

2.2 视图(View)

视图是用户界面的表示层。它负责显示数据,并提供用户与应用程序交互的界面。视图通常依赖于模型来获取数据,但不应包含任何业务逻辑。

代码示例

<!DOCTYPE html>
<html>
<head>
    <title>Product List</title>
</head>
<body>
    <h1>Products</h1>
    <ul>
        @foreach (var product in Model)
        {
            <li>@product.Name - @product.Price</li>
        }
    </ul>
</body>
</html>

2.3 控制器(Controller)

控制器是模型和视图之间的桥梁。它负责处理用户输入,更新模型,并选择适当的视图来显示结果。控制器包含应用程序的主要逻辑,但不直接处理数据。

代码示例

public class ProductController : Controller
{
    public IActionResult Index()
    {
        var products = new List<Product>
        {
            new Product { Id = 1, Name = "Laptop", Price = 1200 },
            new Product { Id = 2, Name = "Phone", Price = 800 }
        };
        return View(products);
    }
}

3. 实践练习

3.1 创建一个简单的 MVC 应用程序

  1. 创建项目:在 Visual Studio 中创建一个新的 ASP.NET Core MVC 项目。
  2. 定义模型:创建一个 Product 类,包含 Id、Name 和 Price 属性。
  3. 创建控制器:创建一个 ProductController,并在其中定义一个 Index 方法,返回一个包含产品列表的视图。
  4. 创建视图:在 Views/Product 文件夹中创建一个 Index.cshtml 视图,显示产品列表。

3.2 代码实现

模型

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

控制器

public class ProductController : Controller
{
    public IActionResult Index()
    {
        var products = new List<Product>
        {
            new Product { Id = 1, Name = "Laptop", Price = 1200 },
            new Product { Id = 2, Name = "Phone", Price = 800 }
        };
        return View(products);
    }
}

视图

@model List<Product>

<!DOCTYPE html>
<html>
<head>
    <title>Product List</title>
</head>
<body>
    <h1>Products</h1>
    <ul>
        @foreach (var product in Model)
        {
            <li>@product.Name - @product.Price</li>
        }
    </ul>
</body>
</html>

4. 总结

MVC 架构通过将应用程序分为模型、视图和控制器三个组件,实现了关注点的分离,提高了代码的可维护性和可扩展性。通过本教程的学习,你应该能够理解 MVC 架构的基本概念,并能够创建一个简单的 MVC 应用程序。

5. 进一步学习

  • 深入学习:探索更多高级的 MVC 特性,如路由、过滤器、依赖注入等。
  • 实践项目:尝试创建一个更复杂的应用程序,如一个简单的电子商务网站。
  • 社区资源:参与 C# 和 .NET 社区,阅读相关文档和博客,获取更多实践经验。

通过不断的实践和学习,你将能够熟练掌握 MVC 架构,并在实际项目中应用它。