以下是一份 MVC(Model - View - Controller)培训教程,以ASP.NET MVC 为例进行讲解,适合有一定编程基础的学习者快速上手。
MVC 是一种软件设计模式,它将应用程序分为三个主要部分:
Visual Studio 是一个强大的集成开发环境(IDE),支持 ASP.NET MVC 开发。可以从 Visual Studio 官网 下载并安装。
打开 Visual Studio,选择 “创建新项目”,搜索 “ASP.NET Web 应用程序”,选择合适的模板,点击 “下一步”,设置项目名称和位置,然后选择 “MVC” 模板,点击 “创建”。
在项目的 “Models” 文件夹中创建一个新的类,例如 Product.cs
:
csharp
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
这个类表示一个产品模型,包含产品的 ID、名称和价格。
可以使用 Entity Framework 来实现数据访问。首先,安装 Entity Framework 包:
plaintext
Install-Package EntityFramework
然后,创建一个数据上下文类,例如 ProductContext.cs
:
csharp
using System.Data.Entity;
public class ProductContext : DbContext
{
public DbSet Products { get; set; }
}
这个类继承自 DbContext
,并定义了一个 DbSet
属性,表示产品的集合。
在项目的 “Views” 文件夹中,有一个与控制器名称对应的文件夹。在这个文件夹中创建一个新的视图文件,例如 Index.cshtml
:
html
@model IEnumerable
产品列表
ID
名称
价格
@foreach (var product in Model)
{
@product.Id
@product.Name
@product.Price
}
这个视图文件使用 Razor 语法,显示产品列表。
ASP.NET MVC 提供了一些视图模板,如 Create
、Edit
、Delete
等,可以快速生成常见的视图。
在项目的 “Controllers” 文件夹中创建一个新的控制器类,例如 ProductController.cs
:
csharp
using System.Data.Entity;
using System.Linq;
using System.Web.Mvc;
public class ProductController : Controller
{
private ProductContext db = new ProductContext();
// GET: Product
public ActionResult Index()
{
var products = db.Products.ToList();
return View(products);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
这个控制器类包含一个 Index
方法,用于获取产品列表并返回视图。
在 RouteConfig.cs
文件中配置路由规则,确保请求能够正确地路由到控制器的方法:
csharp
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Product", action = "Index", id = UrlParameter.Optional }
);
}
}
按下 F5 键运行项目,浏览器将打开并显示产品列表页面。
在模型类中添加数据验证特性,例如 [Required]
、[StringLength]
等:
csharp
using System.ComponentModel.DataAnnotations;
public class Product
{
public int Id { get; set; }
[Required(ErrorMessage = "名称是必填项")]
public string Name { get; set; }
[Range(0, 1000, ErrorMessage = "价格必须在 0 到 1000 之间")]
public decimal Price { get; set; }
}
使用视图布局可以统一页面的外观,部分视图可以复用页面的一部分。
在控制器方法中使用异步编程,提高应用程序的性能:
csharp
public async Task Index()
{
var products = await db.Products.ToListAsync();
return View(products);
}
通过本教程,你学习了 MVC 模式的基本概念,以及如何使用 ASP.NET MVC 框架创建一个简单的 Web 应用程序。MVC 模式可以帮助你更好地组织代码,提高应用程序的可维护性和可扩展性。
以上教程可以作为一个基础的 MVC 入门培训,后续可以根据实际需求深入学习更多高级特性和应用场景。