ASP.NET MVC 教程

下面是一份从零到能独立开发的 ASP.NET MVC 经典教程(基于 ASP.NET MVC 5 + Razor + Entity Framework 6),适合初学者到中级开发者。虽然现在主流是 ASP.NET Core,但 MVC 5 在很多企业内部系统、旧项目维护中仍然非常常见,学好了对 Core 也完全无缝衔接。

1. 环境准备(2025 年还能正常安装)

工具推荐版本下载方式
Visual Studio2022 Community(免费)官网下载
.NET Framework4.7.2 或 4.8VS 安装时勾选
SQL ServerExpress 2019/2022(免费)官网下载
IIS Express(自带)

安装时一定要勾选“Web 开发工作负载”。

2. 创建第一个 ASP.NET MVC 5 项目

  1. 打开 Visual Studio → 创建新项目
  2. 选择 “ASP.NET Web 应用程序 (.NET Framework)”
  3. 项目名:MvcDemo
  4. 选择模板:MVC(勾选“添加单元测试”可选)
  5. 身份验证:无身份验证(先学基础,再学 Identity)

项目结构一目了然:

MvcDemo/
├─ App_Start/
├─ Controllers/      ← 控制器
├─ Models/            ← 模型
├─ Views/             ← 视图(.cshtml 或 .vbhtml)
│   ├─ Home/
│   ├─ Shared/        ← _Layout.cshtml 在这里
│   └─ Account/
├─ Content/           ← css
├─ Scripts/           ← js
└─ web.config

3. MVC 核心三件套快速上手

Controller(控制器)

// Controllers/ProductsController.cs
public class ProductsController : Controller
{
    private readonly ApplicationDbContext db = new ApplicationDbContext();

    // GET: /Products/
    public ActionResult Index()
    {
        var products = db.Products.ToList();
        return View(products);   // 自动找 Views/Products/Index.cshtml
    }

    // GET: /Products/Details/5
    public ActionResult Details(int id)
    {
        var product = db.Products.Find(id);
        if (product == null) return HttpNotFound();
        return View(product);
    }
}

Model(模型)

// Models/Product.cs
public class Product
{
    public int Id { get; set; }

    [Required, StringLength(100)]
    public string Name { get; set; }

    [Column(TypeName = "money")]
    public decimal Price { get; set; }

    public bool IsActive { get; set; }
}

View(视图)- Razor 语法(C#)

<!-- Views/Products/Index.cshtml -->
@model IEnumerable<MvcDemo.Models.Product>

<h2>商品列表</h2>

<table class="table table-striped">
    <thead>
        <tr>
            <th>@Html.DisplayNameFor(m => m.Name)</th>
            <th>@Html.DisplayNameFor(m => m.Price)</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
    @foreach (var item in Model)
    {
        <tr>
            <td>@Html.ActionLink(item.Name, "Details", new { id = item.Id })</td>
            <td>@item.Price.ToString("C")</td>
            <td>
                @Html.ActionLink("编辑", "Edit", new { id = item.Id }) |
                @Html.ActionLink("删除", "Delete", new { id = item.Id })
            </td>
        </tr>
    }
    </tbody>
</table>

<p>@Html.ActionLink("新增商品", "Create", null, new { @class = "btn btn-primary" })</p>

4. 使用 Entity Framework 6(Code First)

  1. 安装 NuGet 包(必装三个):
EntityFramework
EntityFramework.SqlServer
Microsoft.AspNet.Mvc   (通常已自带)
  1. 创建 DbContext
// Models/ApplicationDbContext.cs
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext() : base("DefaultConnection") { }

    public DbSet<Product> Products { get; set; }
    public DbSet<Category> Categories { get; set; }
}
  1. 在 Web.config 添加连接字符串
<connectionStrings>
  <add name="DefaultConnection" 
       connectionString="Server=(localdb)\MSSQLLocalDB;Database=MvcDemoDb;Trusted_Connection=true;" 
       providerName="System.Data.SqlClient" />
</connectionStrings>
  1. 启用迁移(Package Manager Console)
Enable-Migrations
Add-Migration InitialCreate
Update-Database

5. 常用功能实战清单(建议按顺序做)

功能关键知识点建议练习
CRUD 完整增删改查Action、HttpGet/HttpPost、ModelState商品管理
表单验证Data Annotations、[ValidateAntiForgeryToken]注册页面
分页PagedList.Mvc 或自己写 Skip/Take商品列表
布局页 _Layout@RenderBody、@RenderSection、Sections全站统一布局
部分视图 PartialView@Html.Partial、@Html.Action菜单、购物车小部件
区域 Area后台管理、前台分离Admin 区域
身份认证ASP.NET Identity 2.x(MVC5 自带模板)登录/注册
过滤器 Filter[Authorize]、自定义异常过滤器权限控制
Ajax 无刷新Unobtrusive Ajax、jQuery 或 fetch加入购物车
Bundles 打包压缩BundleConfig.cs提升加载速度

6. 推荐免费完整实战项目(跟着敲完基本功就扎实了)

  1. MVC 音乐商店(官方经典)
    https://github.com/MicrosoftDocs/visualstudio-docs/tree/main/docs/downloads/mvc-music-store
  2. 简易博客系统(推荐自己写)
    功能:文章增删改查 + 分类 + 评论 + 后台管理
  3. 企业 OA 小系统
    功能:员工管理、请假审批、公告、文件上传

7. 学习资源(2025 年仍然有效)

  • 微软官方文档(最权威):https://learn.microsoft.com/zh-cn/aspnet/mvc/
  • 《Pro ASP.NET MVC 5》中文版(经典书)
  • Bilibili 搜索 “ASP.NET MVC 5 教程” → 黑马、传智、老张等都有 100+ 集免费课

8. 最后提醒

  • MVC 5 项目默认用 .cshtml(C# Razor),你如果想用 VB.NET 就选 .vbhtml,语法基本一样,只是控制器用 VB 写。
  • 学会 MVC 5 后,转 ASP.NET Core MVC/Core Razor Pages 只需要 1~2 周。

需要我给你一个完整可运行的 MVC 5 + EF6 + Bootstrap 5 后台管理系统模板(带登录、菜单、CRUD 示例),直接发你下载也可以,随时说一声!祝你玩得开心~

文章已创建 2965

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部