当前位置: 首页 > article >正文

.NET8入门:13.ASP.NET Core MVC

ASP.NET Core MVC是一种十分经典的软件设计模式架构,接下来我们来了解一下MVC在ASP.NET8中的一些基础概念。

MVC架构

MVC架构主要包含以下三层:

M(Model):模型层,其职责为UI显示以及业务逻辑或操作所需要的实体对象模型,一般与数据库表存在映射关系。

V(View):视图层,其职责为人机交互页面,展示以及操作数据。

C(Controller):控制器层,其职责为处理数据交互以及业务逻辑,为数据与UI进行交互的一层。

MVC架构引用关系如下:

创建MVC项目

详情查看第二章使用模板创建.NET Core Web

控制器

在MVC中控制器是用来处理用户输入和交互并进行响应的。

添加控制器

选中Controllers文件夹——>右键——>添加——>控制器

选择空控制器

输入控制器名称后点击添加

添加成功后的控制器代码

为控制器添加视图

选中Index方法——>右键——>添加视图

添加Razor视图-空

Views/Test目录下生成了刚才Index方法的视图

生成规则:Vilews/控制器名称/方法名

视图

在Index.cshtml页面中添加以下代码:

@{
    ViewData["Title"] = "Test Page";
}

<div class="text-center">
    <h1 class="display-4">Hello World</h1>
</div>

启动应用并在URL后添加/Test(控制器名称),会命中TestController控制器下的Index方法所绑定的视图。展示效果如下图:

在布局页面(Views/Shared/_Layout.cshtml)添加刚才新加的视图的入口

在asp.net core mvc中a标签内插入asp-area="" asp-controller="Test" asp-action="Index"表示跳转到Test控制器的Index方法

                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-controller="Test" asp-action="Index">Test</a>
                        </li>

将上面代码插入到标红的代码处

点击Test进入到Test控制器的Index页面

模型

选中Models文件夹——>右键——>添加——>类

输入类名——>点击添加

在新建的类中输入以下代码

    public class TestModel
    {
        public int Id { get; set; }

        public string Message { get; set; }
    }

修改Test控制器代码创建一个model实例并返回给视图

    public class TestController : Controller
    {
        public IActionResult Index()
        {
            TestModel model = new TestModel()
            {
                Id = 1,
                Message = "Hello,Test Message"
            };
            return View(model);
        }
    }

修改Test\Index.cshtml代码,通过@model指令指定视图对象类型,并通过@HTML辅助标签来访问控制器中返回给视图的model实例

@model TestModel

@{
    ViewData["Title"] = "Test Page";
}

<div class="text-center">
    <h1 class="display-4">Hello World</h1>
    <h1 class="display-4">ID:@Html.DisplayFor(model=>model.Id)</h1>
    <h1 class="display-4">Message:@Html.DisplayFor(model => model.Message)</h1>
</div>

访问结果如图


http://www.kler.cn/a/558871.html

相关文章:

  • AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自动收发消息)
  • ArcGIS Pro热力图制作指南:从基础到进阶
  • VS2022配置FFMPEG库基础教程
  • 视频mp4垂直拼接 水平拼接
  • Vulhub靶机 Apache Druid(CVE-2021-25646)(渗透测试详解)
  • 【Python爬虫(44)】分布式爬虫:筑牢安全防线,守护数据之旅
  • 如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗?
  • 20250223学习记录
  • The Heliosphere 日球层
  • 机器学习数学通关指南——拉格朗日乘子法
  • Hadoop常用操作命令
  • w803|联盛德|WM IoT SDK2.X测试|window11|手动编译|(3):编译环境搭建
  • 现代任务调度系统架构深度解析——以TaskSchedulerController为核心的弹性任务管理方案
  • 第1章 Vue设计哲学(深度解析版)
  • ReACT agent和FC agent
  • 纯CPU跑DeepSeek-R1 671b大模型
  • Pytorch深度学习教程_5_编写第一个神经网络
  • windows下安装CUDA-本地微调大模型
  • JUC并发—11.线程池源码分析
  • 通过Hive小文件合并(CombineHiveInputFormat)减少80%的Map任务数