NET
一.前端部分
1.VScode 常用插件
Live Server搭建具有实时加载功能的小型服务器Open-In-Browser直接在浏览器中查看页面HTML CSS SupportHTML和CSS代码提示CSS Peak追踪至样式表中CSS类和id定义的地方Prettier-Code formatter代码格式化工具JavaScript(ES6)CODE SNIPPETS支持ES6和JavaScript代码片段插件Color InfoCSS中使用颜色的相关信息
2.HTML
◼html部分特殊符号
| 显示结果 |   |
|---|---|
| 空格 |   |
| < | < |
| > | > |
| & | & |
| £ | £ |
| ¥ | ¥ |
| © | © |
| ® | ® |
| ™ | &trade |
| × | × |
◼html表格基本结构
1 | <table border="1" width="600px"> |
- 每个
tr表示一行每个th代表这一行中的每个元素值(第一行)td代表这一行中的每个元素值(非第一行) colspan=3表示这个一次包含3纵列rowspan=4表示这个一次包含4行
◼form表单基本结构
1 | <form action="data.html" method="get"> |
http://127.0.0.1:5500/data.html?nusername=123&pwd=456这里将值传入了data.html,值与值之间用**&**隔开action=xxxx.xxxx表示将这分表单的数据传入xxxx.xxxxmethon='get'表示传入方法是get方法,同理还有post方法
◼一些form表单元素及其属性作用
1 | <form> |
name="username"表示将数据提交时url显示的参数名字是usernamevalue=liulei属性的值表示的是输入框中显示的初始值title=提示信息鼠标移上去后会弹出“**提示信息**”maxlength=8最大位数是8placeholder="长度8个字符"当没有输入时显示“**长度8个字符**”
1 | <form> |
size属性规定下拉列表中可见选项的数目multiple="multiple"表示可以同时选择多个选项value属性如果我们选择的是JAVA那么我传入的数据就是master=2
1 | <form > |

1 | <form> |

3.css
◼ CSS的一些单位

◼常见选择器及优先级
| 选择器 | 10000 |
|---|---|
| style(内联样式) | 1000 |
| id选择器 | 100 |
| 类选择器、属性选择器、伪类 | 10 |
| 标签选择题、伪元素 | 1 |
| 通配符 | 0 |
一般来说:选择范围较大的级别较低
◼CSS 的 2 个示例
1.悬浮变色、边框、阴影等效果
1 | div{ |
background-color属性设置元素的背景颜色width设置段落宽度border-left设置左边框属性border-radius添加圆角边框padding内边距margin外边距hover选择鼠标指针浮动在其上的元素,并设置其样式cursor:pointer网页浏览时用户鼠标指针的样式或图形形状为一只伸出食指的手box-shadow属性用于在元素的框架上添加阴影效果( X 轴偏移量、Y 轴偏移量、模糊半径、扩散半径和颜色)
2.简单导航
1 | <ul class="nav"> |
1 | ul.nav { |
float:left把图像像左浮动list-style-type设置列表样式类型a:link正常,未访问过的链接a:visited用户已访问过的链接display:block设置为块级元素text-align设置文本对齐方式text-decoration文本修饰
4.JavaScript
◼ js基本特点
- JS是一种**解释性脚本语言**(代码不进行预编译,可在程序运行过程中逐行进行解释)
- JS是一种**简单的弱类型脚本语**言(未使用严格的数据类型
- JS是一种**基于对象的语言**(不仅可以创建对象,也能使用自身的对象或其他语言创建的对象)
- JS是一种**跨平台脚本语言**(不依赖于操作系统,仅需要浏览器的支持)
◼JS箭头函数
匿名函数可进一步用箭头函数来简化(箭头函数用=>定义,也成:lambda表达式
1 | let foo=function(num){ |
JS 数组操作:map、reduce、join、slice、splice、push、pop、shift、unshift 方法基本用法
JS 程序:五秒倒计时,跳转到学校官网
1 |
|
document.getElementById方法可返回对拥有指定 ID 的第一个对象的引用btn.disabled禁用btn.innerHTML属性设置或返回表格行的开始和结束标签之间的 HTML。setInterval方法可按照指定的周期(以毫秒计)来调用函数或计算表达式clearInterval方法可取消由 setInterval() 函数设定的定时执行操作window.loaction页面跳转
◼DOM基本概念
DOM:文档对象模型
DOM是载入到浏览器中的文档模型,以节点树的形式来表现文档,每个节点代表文档的构成部分
◼DOM常用操作
1.查询操作
1 | <ul id="list"> |
1 | let list = document.getElementById('list') // 命中id="list"的元素,注意不带#,不是css选择器 |
2.创建操作:document.createElement
1 | <ul id="list"> |
1 | let list = document.createElement('ul') //创建1个ul元素 |
JSON对象定义基本特点
- 数据在键值对中(键名即属性名必须加双引号)
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON可通过JavaScript进行解析,JSON的值可以是:数字 字符串 逻辑值 数组 对象 null
json不能存储Date对象,如果需要则用字符串表示
JSON.parse程序示例:
◼ JSON.parse(text [, reviver]) :将JSON格式字符串转换为JavaScript对象
◼ 参数说明:
text:必需,一个有效的JSON字符串 (如格式不正确则解析会出错)reviver:可选,一个转换结果的函数, 将为对象的每个成员调用此函数
1 | let jstr = '{"name":"wust", "url":"www.wust.edu.cn","birthday":"1898-11-21"}'; |
二.MVC后台部分
1.MVC基本概念:
- MVC:是一种体系结构模式,他将应用程序分成3个主要组件:**模型(Model)视图(View)和控制器(Controller)**
- MVC模式有助于实现关注点分离:
- 关注点:输入逻辑 业务逻辑 UI逻辑
2.MVC三个模块功能
- 控制器C:处理浏览器的请求,决定如何调用业务层数据的增、删、改、查等业务操作,以及如何将结果返回给视图进行渲染。
- 模型M:应用的实体类,用于在内存中暂时存储数据,并在数据变化时通知控制器。
- 视图V:主要用来解析、处理、显示内容,并进行模板的渲染。
3.MVC体系结构优点:
◼ Controller与View完全分离(松耦合),有利于前、后台分工合作
◼ 一个Model可建立多个视图,满足用户不同需求
◼ Model独立于视图,可移植到新的平台,代码重用高,易于维护
◼ 表现层的性能可以优化到极致
◼ 容易对界面逻辑进行单元测试
◼ 非常强大的URL映射组件,非常干净的URL来建造应用
◼ 有利于软件工程化管理
4.MVC项目目录结构

5.Razor基本概念和基本语法规则
Razor概念Razor是一个视图模板引擎,它提供了优雅的方法将基于服务器的代码(如C#)嵌入到HTML页面中
Razor语法规则
◼ C# 代码封装于 @{ … } 中
◼ 代码语句以分号结尾
◼ 行内表达式(变量和函数)以 @ 开头
◼ C# 代码对大小写敏感
6.ViewData传值特点
- ViewData是一个字典对象,用来从Controller向对应的View视图传值
- ViewData只在当前请求中有效,生命周期和View相同,其值不能在多个请求中共享
- 在重定向(新请求)后,ViewData存储的值将变为null
- 使用ViewData值时必须进行合适的类型转换和建议空值检查
7.TrmpData传值特点
- TempData也是一个字典对象,但是基于Session存储机制
- TempData用在多个Action间或页面重定向(Redirection)时传递共享数据
- 但TempData存放的数据只一次访问中有效,一次访问完成后就会删除
- TempData用法和ViewData相同
8.“新搭建基架的项目”时生成的一些内容:

9.EF Core数据库迁移两个命令:
① Add-Migration InitialCreate
② Uppate-Database
10.ORM的概念
ORM (Object Relation Mapping) 是对象/关系映射,它将内存中的对象和数据库中的立映射关系
11.ORM技术产生的背景原因
◼ 面向对象开发方法是当今企业级应用主流开发方法。
◼ 关系数据库是企业级应用永久存放数据的主流数据存储系统。
◼ 对象和关系数据是业务实体两种表现形式:业务实体在内存中表现为对象(非持久化存储),在数据库中表
现为关系数据(持久化存储) 。
◼ 需要一种技术实现二者间映射,以简化编程,提高系统效率
12.模型的一些DateType注解
| DataType类型值 | 说明 |
|---|---|
| DataType.Currency | 表示货币值 |
| DataType.Date | 表示日期值 |
| DataType.EmailAddress | 表示电子邮件地址 |
| DataType.Multiline Text | 表示多行文本 |
| DataType.Password | 表示密码值 |
| DataType.Time | 表示时间值 |
| DataType.Url | 表示一个URL值 |
13.模型的一些验证注解
◼ [Required]:验证字段是否不为 null
◼ [StringLength]:验证字符串属性值是否不超过指定的长度限制。
◼ [Range]:验证属性值是否位于指定范围内。
◼ [Compare]:验证模型中的两个属性是否匹配。
◼ [RegularExpression]:验证 属性值是否与指定的正则表达式匹配。
◼ [EmailAddress]:验证属性是否具有电子邮件格式。
注:[DataType]:只是帮助字段进行格式设置,不提供任何验证
14.控制器方法的两个注解
◼ [HttpPost] 注解:表明只能由POST请求才能调用此Action方法,不写默认[HttpGet] (第一个Create就是GET)
◼ [ValidateAntiForgeryToken] 注解:用于防止请求伪造 (更安全)
15.强类型传值
◼ 回顾:ViewData字典传值是一个弱类型传值方式 (使用时需要手工强转类型)
◼ 强类型传值则不需要手工强转类型
◼ 如何实现强类型传值:
① 控制器在返回视图时,添加模型对象作为参数,即: return View(模型对象);
② 在视图中,先使用 @model 指令声明模型对象类型
③ 然后在视图中使用Model对象来接收传来的模型对象,之后使用Model对象无需强转
16.控制器编程
给出数据库表,以及模型类、数据库上下文类,查询所有记录或根据 id 查明细。控制器基本结构:
1 | public class MoviesController : Controller |