C# Web开发教程(四)之MVC简单介绍
ASP.NET Core MVC (Model-View-Controller)模型-视图(前端)-控制器(接口)

- 模型: 就是普通的C#类
- 视图: 名为"xxx.cshtml"的文件,就是前端
- 视图一般被放到Views文件夹下的控制器名字的文件夹下。
- 控制器: 由Controller类实现
- 控制器类的名字一般以Controller结尾,并且被放到Controllers文件夹下。控制器的名字为控制器的类名去掉Controller。
- 大致流程: 视图→浏览器端提交的请求→模型→控制器→处理→模型→视图(渲染)
- 新建项目启动时,
谷歌浏览器报错了

- 这是因为项目使用了 HTTPS 协议,但浏览器不信任 ASP.NET Core 开发服务器自动生成的自签名证书
dotnet dev-certs https --clean
dotnet dev-certs https --trust
- 完全退出"谷歌浏览器",并重启IDE,问题解决
关于自签名证书的一点说明
自签名证书就像你自己给自己开具的“身份证明”,没有经过公认的“公安机关”(受信任的证书颁发机构,CA)的确认。因此,浏览器和操作系统无法自动验证其真实性,会出于安全考虑发出警告8。dotnet dev-certs https --trust 命令的作用,其实就是把你这个“自己开具的身份证明”手动添加到系统的“可信名单”里。
demo实例演示
- 新建模型: Models.Person.cs
namespace WebApplication1.Models
{
// 定义了一个名为Person的记录类型(record)
// 关于record:语法糖+自己的特性
public record Person(string Name,bool IsVIP,DateTime CreatedDateTime);
}
关键特性:
- 记录类型(Record):C# 9.0引入的新特性,主要用于封装数据
- 位置记录语法:简洁的声明方式,自动生成:
- 只读属性
- 构造函数
- 解构方法
- 基于值的相等比较实现
- 不可变性:记录类型的属性默认是只读的,创建后不能修改
- 值相等性:两个记录实例如果属性值相同,则被视为相等
与普通类的区别:
- 普通类默认是可变的,而记录默认是不可变的
- 普通类使用引用相等性,记录使用值相等性
- 记录支持
with表达式来创建修改后的副本 - 记录自动生成
ToString()、GetHashCode()和Equals()方法
记录类型特别适合用于DTO(数据传输对象)、值对象和不可变数据模型等场景。
- 控制器书写逻辑(筛选要渲染的数据): Controllers.TestController.cs
using Microsoft.AspNetCore.Mvc;
using WebApplication1.Models;
namespace WebApplication1.Controllers
{
public class TestController : Controller
{
public IActionResult Demo1()
{
// 生成实例并返回
var person = new Person("Tom",true,DateTime.Now);
return View(person);
}
}
}
- 写视图前端: Views.Test.Demo1.cshtml(默认路由: https://localhost:7274/test/demo1,属性设置为"较新则复制")
@model WebApplication1.Models.Person
<div>姓名: @Model.Name</div>
<div>是否VIP: @Model.IsVIP</div>
<p>@Model.CreatedDateTime</p>
- 跑起项目并测试结果


浙公网安备 33010602011771号