搭建 Web 基础框架
通过 dotnet new mvc 在 Projects\MyWebApp 目录下创建一个 MVC 程序
清空 Models、Views 和 Controllers 文件夹
注:
具体操作可参考第一个 ASP.NET Core 程序
以后这个操作简称为创建名为 xx 的空 Web 程序
添加模型
在 Models 文件夹内创建 Product.cs
在 Product 里面添加如下代码。Product 就是个 Model 类
namespace MyWebApp.Models
{
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
}
注:以后这个操作简称为在 xx 文件夹里面创建文件 xx 然后添加如下代码。
添加控制器
在 Controllers 文件夹里面创建文件 ProductController.cs 然后添加如下代码。
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using MyWebApp.Models;
namespace MyWebApp.Controllers
{
public class ProductController : Controller
{
public IActionResult ShowAll()
{
ViewData["Heading"] = "All Products";
var products = new List<Product>();
products.Add(new Product { ID = 101, Name = "Apple", Price = 1.1 });
products.Add(new Product { ID = 202, Name = "Bike", Price = 2.2 });
products.Add(new Product { ID = 303, Name = "Calculator", Price = 3.3 });
products.Add(new Product { ID = 777, Name = "Penguin", Price = 0.1 });
return View(products);
}
}
}
注:
以后,我们将省略引用命名空间的代码
ProductController 类就是一个 Controller
Product 是控制器的名称,不是类名
不要用复数名词命名控制器。即此处不能用 ProductsController 作为类名。具体原因将在第三单元解释
ShowAll 方法就是一个 action
添加视图
在 Views 文件夹下创建 Product 文件夹
在 Product 文件夹下创建视图文件 ShowAll.cshtml,它将是同名的 ShowAll action 的默认视图
代码如下: ```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(不区分大小写),查看效果。