搭建 Web 基础框架

  1. 通过 dotnet new mvc 在 Projects\MyWebApp 目录下创建一个 MVC 程序

  2. 清空 Models、Views 和 Controllers 文件夹

注:

添加模型

  1. 在 Models 文件夹内创建 Product.cs

  2. 在 Product 里面添加如下代码。Product 就是个 Model

    1. namespace MyWebApp.Models
    2. {
    3. public class Product
    4. {
    5. public int ID { get; set; }
    6. public string Name { get; set; }
    7. public double Price { get; set; }
    8. }
    9. }

注:以后这个操作简称为在 xx 文件夹里面创建文件 xx 然后添加如下代码

添加控制器

在 Controllers 文件夹里面创建文件 ProductController.cs 然后添加如下代码。

  1. using System.Collections.Generic;
  2. using Microsoft.AspNetCore.Mvc;
  3. using MyWebApp.Models;
  4. namespace MyWebApp.Controllers
  5. {
  6. public class ProductController : Controller
  7. {
  8. public IActionResult ShowAll()
  9. {
  10. ViewData["Heading"] = "All Products";
  11. var products = new List<Product>();
  12. products.Add(new Product { ID = 101, Name = "Apple", Price = 1.1 });
  13. products.Add(new Product { ID = 202, Name = "Bike", Price = 2.2 });
  14. products.Add(new Product { ID = 303, Name = "Calculator", Price = 3.3 });
  15. products.Add(new Product { ID = 777, Name = "Penguin", Price = 0.1 });
  16. return View(products);
  17. }
  18. }
  19. }

注:

  • 以后,我们将省略引用命名空间的代码

  • ProductController 类就是一个 Controller

  • Product 是控制器的名称,不是类名

  • 不要用复数名词命名控制器。即此处不能用 ProductsController 作为类名。具体原因将在第三单元解释

  • ShowAll 方法就是一个 action

添加视图

  1. 在 Views 文件夹下创建 Product 文件夹

  2. 在 Product 文件夹下创建视图文件 ShowAll.cshtml,它将是同名的 ShowAll action 的默认视图

  3. 代码如下: ```csharp @model List

@ViewData[“Heading”]

@foreach(var p in Model){ }
ID Name Price
@p.ID @p.Name @p.Price
```

运行程序

由于我们故意没用 ASP.NET Core 的默认 URL 路由,因此在运行程序时,浏览器会报 404 Not Found HTTP 错误。你可以直接访问 http://localhost:5000/Product/ShowAll(不区分大小写),查看效果。