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

MVC基础——市场管理系统(一)


文章目录

  • 项目地址
  • 一、创建项目结构
    • 1.1 创建程序以及Controller
    • 1.2 创建View
    • 1.3 创建Models层,并且在Edit页面显示
    • 1.4 创建Layou模板页面
    • 1.5 创建静态文件css中间件
  • 二、Categories的CRUD
    • 2.1 使用静态仓库存储数据
    • 2.2 将Categorie的列表显示在页面中(List)
    • 2.3 创建_ViewImport.cs文件,将有公共引入写入
    • 2.4 创建Edit页面的表单提交 (Update)
      • 2.4.1 给修改字段添加一些验证
      • 2.4.2 使用数据注解Data Annotations
    • 2.5 添加Add逻辑(Create)
      • 2.5.1 在Controller里添加Add的逻辑
      • 2.5.2 在Index页面添加Add按钮
    • 2.6 删除逻辑
      • 2.6.1 在Layout页面设置一个Js的异步Section
    • 2.7 使用Partial View处理重复代码
      • 2.7.1 使用ViewBag传递Controller的名称
    • 2.7.2 提取公共部分,不同的地方进行判断
    • 2.7.3 删除重复代码,使用partial视图
  • ViewModel的设计原则


项目地址

  • 教程作者:王教员

  • 教程地址:

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 创建程序以及Controller

  • 使用空的.net core程序来制作mvc结构
  1. 创建一个空的.net core程序
  2. 在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();
  1. 创建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";}}
}
  1. 通过访问https://localhost:7140/home/index就可以访问到返回的字符串

1.2 创建View

  1. 直接在HomeController里的Index() Action自动添加View,就会得到下面的文件结构,其中Home对应的就是HomeController控制器;Index.cshtml就是对应的action的视图文件
    在这里插入图片描述

  2. 将需要编辑的内容放入到视图页面/Views/Home/Index.cshtml
    在这里插入图片描述

1.3 创建Models层,并且在Edit页面显示

  1. 创建Models文件夹,并且添加Category.cs
namespace WebApp.Models
{public class Category{public int CategoryId { get; set; }public string? Name { get; set; }public string? Description { get; set; }}
}
  1. CategoriesController.cs里添加一个Edit页面,实例化Models里的类,并且传递给View()视图
public IActionResult Edit(int? id)
{var category = new Category{CategoryId = id.HasValue?id.Value : 0};return View(category);
}
  1. 创建一个Eidt的视图, 将Index页面传递的Id,展示在Edit页面里

在这里插入图片描述

1.4 创建Layou模板页面

  1. Views文件夹里Shared文件夹,并且创建_Layout.cshtml

在这里插入图片描述
2. 添加/View/_ViewStart.cshtml,全局的页面都将使用_Layout.cshtml页面作为模板页

@{Layout = "_Layout";
}
  1. 补充,如果其他页面想用其他的Layout,可以使用
Views/
├── _ViewStart.cshtml  // 全局的默认配置
├── Home/
│   ├── Index.cshtml
│   ├── _ViewStart.cshtml  // 只影响 Home 下的视图
  1. 其他页面只需要写@RenderBody()里面的内容即可
<h3 class="d-block">Categories</h3>
<div class="d-block"><ul><li><a href="/categories/edit/1">Beverage</a></li><li><a href="/categories/edit/2">Meet</a></li></ul>
</div>

1.5 创建静态文件css中间件

  1. 添加ww

相关文章:

MVC基础——市场管理系统(一)

文章目录 项目地址一、创建项目结构1.1 创建程序以及Controller1.2 创建View1.3 创建Models层,并且在Edit页面显示1.4 创建Layou模板页面1.5 创建静态文件css中间件二、Categories的CRUD2.1 使用静态仓库存储数据2.2 将Categorie的列表显示在页面中(List)2.3 创建_ViewImport.…...

使用docker-compose安装Milvus向量数据库及Attu可视化连接工具

首先确保系统已经安装上了docker 然后去https://github.com/docker/compose/releases/下载安装docker-compose 跟随自己下系统和服务器情况下载 上传到服务器 mv docker-compose-linux-aarch64 docker-compose chmod x docker-compose2.dockr-compose命令 docker-compose …...

PostgreSQL函数中使用now()或current_timestamp的异同

在PostgreSQL函数中使用now()或current_timestamp可以获取当前的日期和时间。 now()函数返回当前的日期和时间&#xff0c;包括时区信息。它可以用于记录操作的时间戳或在查询中进行时间比较。 current_timestamp函数也返回当前的日期和时间&#xff0c;但不包括时区信息。它…...

开发类似的同款小程序系统制作流程

很多老板想要开发一款和别人家类似的同款小程序系统&#xff0c;但是不知道该怎么开发制作&#xff0c;本文就为大家详细介绍一下开发类似的同款小程序的流程为大家做参考。 一、前期准备找到对标小程序&#xff1a;首先&#xff0c;需要找到你想要模仿的同款小程序&#xff0…...

bsp是板级支持包

里面有很多的针对该型号的板子的函数&#xff0c;可以直接调用&#xff0c;也可以直接在里面。 也可以在vivado的sdk上&#xff0c;看到很多相关文档和寄存器偏移等等。...

P1784 数独 C语言(普遍超时写法)

题目&#xff1a; https://www.luogu.com.cn/problem/P1784 题目描述 数独是根据 99 盘面上的已知数字&#xff0c;推理出所有剩余空格的数字&#xff0c;并满足每一行、每一列、每一个粗线宫内的数字均含 1−9 &#xff0c;不重复。每一道合格的数独谜题都有且仅有唯一答案…...

基于最新的Apache StreamPark搭建指南

一、StreamPark 的介绍 官方文档:Apache StreamPark (incubating) | Apache StreamPark (incubating) 中文文档:Apache StreamPark (incubating) | Apache StreamPark (incubating)Github地址:https://github.com/apache/incubator-streampark Apache StreamPark™ 是一个…...

思科模拟器路由器的基本配置

一、实验目的 了解路由器的作用掌握路由器的基本配置方法 3、掌握路由器模块的使用和互连方式 二、实验环境 2811路由器一台&#xff0c;计算机两台&#xff0c;Console配置线一根&#xff0c;网线若干&#xff1b;本实验拓扑图如图8-1所示&#xff1b;计算机IP地址规划如表8-…...

vue3 computed watch 拓展reduce函数

computed computed 计算属性计算属性 就是当依赖的属性的值发生变化的时候&#xff0c;才会触发他的更改&#xff0c;如果依赖的值&#xff0c;不发生变化的时候&#xff0c;使用的是缓存中的属性值。 import {reactive,ref,computed} from "vue"//price 改变&…...

MyBatis 中 SQL 片段复用

MyBatis 中 SQL 片段复用&#xff1a;提升代码效率与可维护性 在使用 MyBatis 进行数据库操作时&#xff0c;常常会遇到一些 SQL 语句的部分内容重复出现的情况&#xff0c;比如多个查询语句都涉及相同的字段列表。这时&#xff0c;MyBatis 的 SQL 片段复用功能就派上用场了。…...

【实操GPT-SoVits】声音克隆模型图文版教程

项目github地址&#xff1a;https://github.com/RVC-Boss/GPT-SoVITS.git官方教程&#xff1a;https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/tkemqe8vzhadfpeu本文旨在迅速实操GPT-SoVits项目&#xff0c;不阐述技术原理&#xff08;后期如果有时间研究&#…...

用HTML和CSS实现3D圣诞树效果

简介 随着圣诞节的临近&#xff0c;许多开发者喜欢在自己的项目中加入一些节日氛围。今天&#xff0c;我们将学习如何使用HTML和CSS来实现一个简单的3D圣诞树效果。通过这些基本的前端技术&#xff0c;我们可以制作出富有创意的视觉效果&#xff0c;并为网站增添节日气氛。 本…...

Burp入门(10)-IP伪造插件

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;IP伪造和爬虫审计_哔哩哔哩_bilibili 本文详细介绍IP伪造插件Burp Fake IP使用。 一、插件安装 打开Burp Suite。进入扩展标签页。点击添加&…...

Mac软件推荐

Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka&#xff08;付费&#xff09; 视频播放IINA 视频下载Downie&#xff08;付费&#xff09; 屏幕刘海TopNotchMediaMate&#xff08;付费&#xff09;NotchDrop&#xff08;付费&#x…...

实验14 RNN的记忆能力和梯度爆炸实验

一 循环神经网络的记忆能力 1.数据集构建 创建了一个DigitSumDataset 类&#xff0c;包括初始化函数init、数据生成函数 generate_data、数据加载函数 load_data、__len__ 方法、__getitem__ 方法。 init函数&#xff1a;接受的参数是data_path&#xff08; 存放数据集的目录…...

LeetCode面试题04 检查平衡性

题目&#xff1a; 实现一个函数&#xff0c;检查二叉树是否平衡。在这个问题中&#xff0c;平衡树的定义如下&#xff1a;任意一个节点&#xff0c;其两棵子树的高度差不超过 1。 一、平衡树定义&#xff1a; 二叉树&#xff0c;一种由节点组成的树形数据结构&#xff0c;每…...

oracle归档模式下的快速热备方法-适合小库

在我们的一些小型的oracle生产库中&#xff0c;有些时候我们可以在不停库且不使用rman的情况下实现数据库的热备。该热备的原理是通过控制数据文件块头的scn号在备份时候不变化&#xff0c;进而保证备份的数据文件数据一致性。 一、环境 数据库版本&#xff1a; 数据库需要开启…...

【机器学习】【分子属性预测】——python读取.tar.gz文件(以OC22数据集为例)

1 Pre-knowledge .tar.gz 文件是一种常见的压缩文件格式&#xff0c;它实际上是两种压缩格式的组合&#xff1a;.tar 和 .gz。 .tar&#xff1a;这是“tape archive”的缩写&#xff0c;是一种打包&#xff08;archiving&#xff09;文件格式&#xff0c;用于将多个文件和目录…...

Qt中禁止或管理任务栏关闭窗口的行为

一、前言 作为一个合格的桌面程序&#xff0c;应该具备良好的资源释放的要求&#xff0c;即避免软件退出时&#xff0c;软件界面虽然消失&#xff0c;却假死在后台&#xff0c;只能通过任务管理器强行杀死。这意味着&#xff0c;程序无法通过正常操作进行退出&#xff0c;变成…...

docker的网络类型和使用方式

docker的网络类型 5种网络类型 bridge 默认类型&#xff0c;桥接到宿主机docker0的网络&#xff0c;有点类似于VM虚拟机的NAT网络模型。 案例: docker run --rm -itd --network bridge --name wzy666wzy-bridge alpine host host类型&#xff0c;共享宿主机的网络空间&#…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...