文章目录
项目地址
教程作者:王教员
教程地址:
https://www.bilibili.com/video/BV1Sn4y1o7EV?spm_id_from=333.788.player.switch&vd_source=791e6deaa9c8a56b1f845a0bc1431b71&p=6
- 代码仓库地址:
https://github.com/CXTV/WebApp
- 所用到的框架和插件:
.net 8
一、创建项目结构
1.1 创建程序以及Home的Controller
- 使用空的.net core程序来制作mvc结构
- 创建一个空的.net core程序
- 在Program.cs的程序入口,注册我们依赖项
var builder = WebApplication.CreateBuilder(args);
//1.注入服务
builder.Services.AddControllersWithViews();
var app = builder.Build();
//2.添加中间件
app.UseRouting();
//3.添加控制器
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
app.Run();
- 创建
controllers
文件夹,并且添加一个HomeController.cs
- 当一个url通过匹配后,先回找到对应的controller,然后根据页面的view,找到对应的action; 例如:用户访问了
/Home/Index.html
,就回找到下面的方法Index()
using Microsoft.AspNetCore.Mvc;
namespace WebApp.Controllers
{
public class HomeController : Controller
{
public string Index()
{
return "Hello /Home/index";
}
}
}
- 通过访问
https://localhost:7140/home/index
就可以访问到返回的字符串
1.2 创建Home的View
直接在HomeController里的Index() Action自动添加View,就会得到下面的文件结构,其中Home对应的就是HomeController控制器;
Index.cshtml
就是对应的action的视图文件
将需要编辑的内容放入到视图页面
/Views/Home/Index.cshtml
1.3 创建Models层/和Edit的Get请求页
- 创建
Models文件夹
,并且添加Category.cs
实体类
namespace WebApp.Models
{
public class Category
{
public int CategoryId {
get; set; }
public string? Name {
get; set; }
public string? Description {
get; set; }
}
}
- 在
CategoriesController.cs
里添加一个Edit页面,实例化Models里的类,并且传递给View()视图
public IActionResult Edit(int? id)
{
var category = new Category
{
CategoryId = id.HasValue?id.Value : 0
};
return View(category);
}
- 创建一个Eidt的视图, 将Index页面传递的Id,展示在Edit页面里
1.4 创建Layou模板页面
- 在
Views
文件夹里Shared
文件夹,并且创建_Layout.cshtml