.net core MVC入门(一)

news2024/11/29 4:53:19

文章目录

  • 项目地址
  • 一、环境配置
    • 1.1 安装EF core需要包
    • 1.2 配置数据库连接
  • 二、使用EF创建表
    • 2.1 整体流程梳理
    • 2.1 建表详细流程
      • 2.1.1 创建一个Category的Model
      • 2.1.2 创建Category的EF实体
  • 三、添加Category页面的视图
    • 3.1整体流程梳理
    • 3.2 添加Controller
    • 3.3 添加View 视图
  • 四、使用EF增加Catogory数据,并且读取数据到页面
    • 4.1整体流程梳理
    • 4.2 实现
  • 五、增加Category按钮逻辑
    • 5.1 添加Create的Action,并且生成一个空的View
    • 5.2 在category页面添加Create按钮
    • 5.2 在Create的视图里创建表单


项目地址

  • 教程作者:王教员
  • 教程地址:
https://www.bilibili.com/video/BV1iK4y1q7TC?spm_id_from=333.788.player.switch&vd_source=791e6deaa9c8a56b1f845a0bc1431b71&p=15
  • 代码仓库地址:
  • 所用到的框架和插件:
.net core mvc 

一、环境配置

1.1 安装EF core需要包

在这里插入图片描述

1.2 配置数据库连接

  1. appsettings.json下配置链接字符串
  "ConnectionStrings": {
    "DefaultConnection": "Server=.;Database=netdemo;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;"
  }
  1. 在Nuget的控制台,输入update-database,链接成功则数据库有EFcore的内容
SELECT TOP (1000) [MigrationId]
      ,[ProductVersion]
  FROM [netdemo].[dbo].[__EFMigrationsHistory]

二、使用EF创建表

2.1 整体流程梳理

  1. Models层,创建Category实体类
  2. 创建Data文件夹,并创建EF Core 数据上下文类,用于数据交互
  3. 在EF Core 数据上下文类里,引入并添加我们需要的类
  4. NuGet控制台,执行migration语句
  5. 执行更新数据库语句

2.1 建表详细流程

2.1.1 创建一个Category的Model

  1. Models/Category.cs创建一个类
using System.ComponentModel.DataAnnotations;

namespace MyMvcDemo.Models
{
   
    public class Category
    {
   
        public int CategoryId {
    get; set; }
        public string Name {
    get; set; }
        public int DisplayOrder {
    get; set; }   
    }
}

2.1.2 创建Category的EF实体

  1. Data/ApplicationDBContexts.cs下面,导入Model,添加Category类的EF实体
using Microsoft.EntityFrameworkCore;
using MyMvcDemo.Models;

namespace MyMvcDemo.Data
{
   
    public class ApplicationDBContext : DbContext
    {
   
        public ApplicationDBContext(DbContextOptions<ApplicationDBContext> options) : base(options)
        {
   

        }
        public DbSet<Category> Categories {
    get; set; }
    }
}
  1. NuGet的控制台输入,执行成功后,会生成一个Migration文件夹和里面的snapshort,
 add-migration AddCategoryTableToDb
  1. 再次执行,EF会识别出来Categroies的实体没有,自动创建表
update-database

三、添加Category页面的视图

3.1整体流程梳理

  1. Controller层创建一个Category的控制器
  2. 然后在View层创建该控制器对应的视图

3.2 添加Controller

  1. 在Controller层,创建一个名为CategoryController的空的mvc控制器
using Microsoft.AspNetCore.Mvc;

namespace MyMvcDemo.Controllers
{
   
    public class CategoryController : Controller
    {
   
        public IActionResult Index()
        {
   
            return View();
        }
    }
}

3.3 添加View 视图

  1. 在View层,创建该控制器对应的视图Category/index.cshtml,刚好对应的是IAcation的函数名
<h1>Category List</h1>
  1. 浏览器通过locolhost:category/index就可以访问到view里的视图

四、使用EF增加Catogory数据,并且读取数据到页面

4.1整体流程梳理

  1. 在EF的数据上下文中直接添加数据
  2. 在NuGet里对数据进行写入
  3. Controller层使用依赖注入,读取Category表的数据
  4. 将数据传递给View层
  5. 在html页面里,使用模板语法读取Controller层传递的数据

4.2 实现

  1. EF上下文中,添加需要写入数据库的实体类Data/ApplicationDBContext.cs
namespace MyMvcDemo.Data
{
   
    public class ApplicationDBContext : Db

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2249511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue修改el-table-column背景色和上下margin外边距调整行间距方法教程

在vue中需要修改el-table表格中每一行el-table-column背景色&#xff0c;还有table表格中数据太多&#xff0c;看起来臃肿&#xff0c;需要margin调整上下边距&#xff0c;直接使用margin不生效&#xff0c;是因为display使用的是table属性&#xff0c;所以我们要利用table特性…

Spring框架整合单元测试

目录 一、配置文件方式 1.导入依赖 2.编写类和方法 3.配置文件applicationContext-test.xml 4.测试类 5.运行结果 二、全注解方式 1.编写类和方法 2.配置类 3.测试类 4.运行结果 每次进行单元测试的时候&#xff0c;都需要编写创建工厂&#xff0c;加载配置文件等相关…

微信小程序按字母顺序渲染城市 功能实现详细讲解

在微信小程序功能搭建中&#xff0c;按字母渲染城市会用到多个ES6的方法&#xff0c;如reduce&#xff0c;map&#xff0c;Object.entries()&#xff0c;Object.keys() &#xff0c;需要组合熟练掌握&#xff0c;才能优雅的处理数据完成渲染。 目录 一、数据分析 二、数据处理 …

可视化建模与UML《状态图实验报告》

其实我并不是一个实验报告博主。 大家收拾收拾准备期末复习了嗷&#xff0c;差不多了&#xff0c;不想太赶可以开始准备了。 一、实验目的&#xff1a; 1、熟悉状态图的基本功能和使用方法。 2、掌握使用建模工具软件绘制状态图的方法 二、实验环境&#xff1a; window7 | 10…

单片机学习笔记 11. 外部中断

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

Ubuntu下的Graphviz的基础使用方法

一、Graphviz介绍 graphviz是贝尔实验室开发的一个开源的工具包&#xff0c;它使用一个特定的DSL(领域特定语言):dot作为脚本语言&#xff0c;然后使用布局引擎来解析此脚本&#xff0c;并完成自动布局 1、什么是Graphviz 官网地址&#xff0c;https://www.graphviz.org/ Gr…

IDEA全局设置-解决maven加载过慢的问题

一、IDEA全局设置 注意&#xff1a;如果不是全局设置&#xff0c;仅仅针对某个项目有效&#xff1b;例在利用网上教程解决maven加载过慢的问题时&#xff0c;按步骤设置却得不到解决&#xff0c;原因就是没有在全局设置。 1.如何进行全局设置 a.在项目页面&#xff0c;点击f…

#渗透测试#红蓝攻防#HW#经验分享#溯源反制

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅 目录 一、溯源反制 1、溯源反制的重要性 2、溯源…

Level DB --- SkipList

class SkipList class SkipList 是Level DB中的重要数据结构&#xff0c;存储在memtable中的数据通过SkipList来存储和检索数据&#xff0c;它有优秀的读写性能&#xff0c;且和红黑树相比&#xff0c;更适合多线程的操作。 SkipList SkipList还是一个比较简单的数据结构&a…

YOLOv11融合PIDNet中的PagFM模块及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/pdf/2…

跨平台应用开发框架(4)-----Qt(样式篇)

目录 1.QSS 1.基本语法 2.QSS设置方式 1.指定控件样式设置 2.全局样式设置 1.样式的层叠特性 2.样式的优先级 3.从文件加载样式表 4.使用Qt Designer编辑样式 3.选择器 1.类型选择器 2.id选择器 3.并集选择器 4.子控件选择器 5.伪类选择器 4.样式属性 1.盒模型 …

uniapp定义new plus.nativeObj.View实现APP端全局弹窗

为什么要用new plus.nativeObj.View在APP端实现弹窗&#xff1f;因为uni.showModal在APP端太难看了。 AppPopupView弹窗函数参数定义 参数一:弹窗信息(所有属性可不填&#xff0c;会有默认值) 1.title:"", //标题 2.content:"", //内容 3.confirmBoxCo…

使用phpStudy小皮面板模拟后端服务器,搭建H5网站运行生产环境

一.下载安装小皮 小皮面板官网下载网址&#xff1a;小皮面板(phpstudy) - 让天下没有难配的服务器环境&#xff01; 安装说明&#xff08;特别注意&#xff09; 1. 安装路径不能包含“中文”或者“空格”&#xff0c;否则会报错&#xff08;例如错误提示&#xff1a;Cant cha…

Qwen2.5-7B大模型微调记录

Qwen2.5-7B大模型微调记录 研究需要&#xff0c;需要搞一个大模型出来&#xff0c;没有太多的时间自己训练&#xff0c;准备用现成的开源大模型&#xff0c;然后结合研究方向进行微调 前前后后折腾大半个月&#xff0c;总算做完了第一个微调的大模型&#xff0c;模型基于阿里…

VUE_使用el.animate实现自定义指令抖动效果

// 在 Vue 2 中注册自定义指令 Vue.directive(shake,{// 当被绑定的元素插入到 DOM 中时inserted(el, binding){let value binding.valueconsole.log(el, binding)// 设置 transform-origin 样式el.style.transformOrigin center bottom;const keyframes [{ transform: rota…

多级反馈队列调度算法

参考一 多级反馈队列调度算法 背景/需求分析 在科学技术迅速发展的当代以及经济发展的需求,服务器和任务的数量都在高速增长,同时资源调度的方式以及数量也在成倍增长&#xff0c;目前存在的多种调度算法中&#xff0c;有的调度算法有利于长作业&#xff0c;有的有利于短作业…

ShuffleNet:一种为移动设备设计的极致高效的卷积神经网络

摘要 https://arxiv.org/pdf/1707.01083 我们介绍了一种名为ShuffleNet的计算效率极高的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;该架构专为计算能力非常有限的移动设备&#xff08;例如10-150 MFLOPs&#xff09;而设计。新架构利用两种新操作&#xff1a;逐…

C++ 类和对象(类型转换、static成员)

目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好&#xff0c;我们又见面了。昨天我们已经分享了初始化列表&#xff1a;https://blog.c…

# DBeaver 连接hive数仓

前提 前提是基于hadoop的hive服务已经启动&#xff0c;其中hive的服务包括metastore元数据服务和hiveserver2服务已经启动。hiveserver2服务在默认端口10000启动&#xff0c;且通过telnet xx.xx.xx.xx 10000 能通。 满足以上要求后&#xff0c;再可以看以下连接文档&#xff…

C++趣味编程玩转物联网:用树莓派Pico控制四位数码管

数码管是一种常用的数字显示器件&#xff0c;广泛应用于电子时钟、记分牌和智能设备显示界面。在本项目中&#xff0c;我们将通过树莓派Pico板控制一个四位数码管模块&#xff0c;展示从 0000 到 9999 的数字动态显示。这不仅是一次硬件和软件结合的实践&#xff0c;还可以帮助…