从浅入深了解.NET Core MVC 2.x全面教程【第一章】

这篇具有很好参考价值的文章主要介绍了从浅入深了解.NET Core MVC 2.x全面教程【第一章】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

章节

第一章:https://www.cnblogs.com/kimiliucn/p/17611047.html
第二章:https://www.cnblogs.com/kimiliucn/p/17616708.html

一、基础

1.默认配置

  • 使用Kestrel Web Server
    • ASP.NET Core内置——跨平台
  • IIS集成
    • UseIIS()
    • UseIISIntergration()
  • Log
  • IConfiguration接口

2.IConfiguration配置信息的来源

  • appsettings.json
  • User Serets
  • 环境变量
  • 命令行参数
  • XML...

3.管道

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


4.MVC

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


5.路由Routing

  • Concentional Routing
  • Attribute Routing

6.返回View

  • Razor引擎
  • Controller——>ViewResult——>HTML页面

7.ViewModel

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


8.怎么使用Tag Helper

1.在【Views】文件夹中创建一个【Razor 视图导入】文件。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.在这个文件中导入TagHelper
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.然后在视图中使用
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


9.输入的Model

  • Form
  • 导航到含有Form的View

10.ASP.NET Core MVC-Form

  • Http Post

11.如何使用EF Core

1.先在【appsettings.json】文件中写上连接字符串,将"xxx"替换成自己对应的数据。

  "ConnectionStrings": {
    "DefaultConnction": "Server=xxx;Database=xxx;User Id=xxx;Password=xxx"
  }

2.需要安装这些包。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.写一个【TutorialDbContext.cs】类,该类需要继承自:DbContext
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
4.在【Startup.cs】文件中注入服务。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
在【ConfigureServices】方法中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.使用EF Core进行迁移,在【程序包管理控制台】输入2个命令即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
然后会生成2个文件
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
可以看到已经生成了这个数据库了
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


12.Partial View

  • 复用View代码
  • @Html.Partial("_PartialViewName",data)
  • 没有自己的Model
  • 可以嵌套

13.View Components的特点

  • 可复用
  • 独立的组件
  • 有独立的逻辑/数据
  • 相当于迷你MVC请求
  • 不依赖于父级View的数据

14.在VS中如何使用NPM安装前端库

  • 新建一个Npm配置文件

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 输入需要引入的库,比如我需要引入【Bootstrap】

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 可以看到已经安装好了。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 这是物理文件路径。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 让系统伺服这个文件夹。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


15.使用前端做数据校验

  • 引入Npm库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 在项目中引入刚刚导入的库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 然后前端自动起作用了(最好使用CND,速度快)

16.如何在不同的环境引入不用的库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
如果CND无法访问,挂了;就加入这个回落机制。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
判断Bootstrap
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


17.ASP.NET Core Identity

  • 身份验证和授权系统
  • 成员管理
  • 默认使用MS SQL
  • 支持外部的Provider

18.如果有多个DbContext,需要指定某一个。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


19.Claim

  • 一部分信息
  • Name-Value
  • 可以来自内部或外部
  • 基于策略的(Policy)

20.Prolicy策略

  • 注册policy
  • 使用policy进行授权

21.Policy内置的方式

  • RequireAuthticatedUser:必须登录用户
  • RequireClaim:要求特定的Claim和值
  • RequireRole:要求特定的角色
  • RequireUserName:要求特定的用户名

22.Policy自定义

  • ReuireAssertion
  • AddRequirements
    • IAuthorizationRequirement
      • AuthorizationHandler<TIAuthorizationRequirement-实现IAuthorizationRequirement接口>
      • AuthorizationHandler<TIAuthorizationRequirement-实现IAuthorizationRequirement接口>
      • ...
      • 如果一个Handler返回了Succeed,而其他的都没有返回Fail,那么这个Requirement就被满足了。

23.XSS

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


24.不被信任的数据

  • HTML input
  • HTTP Headers
  • Query strings
  • Attributes,EXIF 信息

25.怎么防止XSS?

  • HTML Encoding:>变成$gt; <变成 <
    • Razor默认开启了HTML Encoding,但是可以手动关闭
  • 正则表达式
  • 反XSS的第三方库
  • 对请求进行验证

26.内置的编码器

  • HtmlEncoder
  • JavaScriptEncoder
  • UrlEncode

27.CSRF(跨站请求伪造)

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


28.OWASP的CSRF防范方案

  • Header验证:请求头
  • Synchronizer Token Pattern :用户每次请求时携带Token
  • Double Submit Cookie:双重Cookie

29.ASP.NET Core

  • [ValidateAntiForgeryToken]:针对一个Action
  • [AutoValidateAntiForgeryToken]:针对所有的Post
  • [IgnoreAntiForGeryToken]:取消

30.Model Binding

  • Model Binding允许我们用HTPP请求里的数据类创建C#对象,这个对象就是Action方法的参数。
  • 可以使用一下类型用来Model Binding:
    • int,string等简单数据类型
    • 复杂类型对象
    • 数组

31.Model Binder可以绑定哪些值?

  • Form的值(Body中的POST请求)
  • 路由的值
  • QueryString的值(URL地址后的参数)

32.Binding Attributes

  • Bind:有选择行的绑定属性
  • BindNver:可以放在Model对象一个属性上,表示不应该进行绑定
  • BindRequired:必须进行绑定,在验证的过程中不绑定就报错误

33.例子

1.在【ViewModel】中有一个嵌套属性。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.在【View】视图中世界嵌套属性.属性。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.在【Controller】中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
有选择的绑定属性,这个特性一般放在【Acion方法中】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
[BindNever]放在ViewModel中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


34.指定Binding的来源,这是特性

  • [FromBody]:RequestBodys——请求的Body
  • [FromQuery]——QueryStrings
  • [FromHeader]:Request Headers——请求头找属性
  • [FromRoute]——路由
  • [FromForm]——表单的值

35.自定义验证Attribute?

1.新建一个类,这个类需要继承【Attribute】,需要实现【IModelValidator】接口。


36.远程调用-特性

  • [Remote]-客户算调用Action方法进行验证。

【在前端直接调用后台方法进行验证。】
ViewModel
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
Controller
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
View
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


37.Tag Helpers

  • Tag Helpers是服务器中的C#代码,他在Razor文件里,他会参与到创建和渲染HTML元素过程。
  • 和HTML Htlpers类似。
  • 跟HTML的命名规范一致。
  • 内置了很多Tag Helpers,也可以自定义。

38.JavaScript Tag Helpers

  • asp-src-include:导入文件,如:javascript
  • asp-src-exclude:将不想加入的文件加入
  • asp-fallback-src:回落机制(调用不到了[asp-src-include]文件然后就调用这个中的)
  • asp-fallvack-test:具体的

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


39.CSS Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


40.其他的Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


41.环境相关的Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】


42.自定义的TagHelpers

1.继承Tag Helpers父类,实现(Override) Process这个方法。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.注册Tag Helpers
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.视图中
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
4.最后生成
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.1如果我想添加一个属性,以“-”分割大小写
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.2在这个类中添加一个属性
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
6.1如何直接使用下面这种方法实现上面的内容?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
6.2使用【异步】的方式
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
7.1如果想添加一个既做为【属性】又作为【元素】的TagHelpers?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
7.2代码
指定目标元素,"或"的关系,只要符合其中一种即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

8.1如果我想添加一个颜色?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
8.2添加一个属性,名称可以不一致,添加一个特性即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
9.1如果改成类?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
9.2设置属性、设置Attribute。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


43.Tag Helper前缀

//加上前缀就起作用了,不加上就不起作用。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】


44.View Component

  • 显示部门内容
  • Mini Controller
  • 可复用
  • 只能配合父级Virew使用。

45.View Component分成两步

  • 首先需要继承ViewComponent父类
  • 实现Invoke()方法
    • 也可以是异步的:InvokeAsync()
      • 返回IViewComponentResult

下一章节:https://www.cnblogs.com/kimiliucn/p/17616708.html
原文链接:https://www.cnblogs.com/kimiliucn/p/17611047.html文章来源地址https://www.toymoban.com/news/detail-635176.html

到了这里,关于从浅入深了解.NET Core MVC 2.x全面教程【第一章】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从浅入深理解序列化和反序列化

    什么是java序列化 序列化:把对象转换为字节序列的过程 反序列:把字节序列恢复为对象的过程 对象序列化机制(object serialization)是java语言内建的一种对象持久化方式,通过对象序列化,可以将对象的状态信息保存为字节数组,并且可以在有需要的时候将这个字节数组通过

    2024年02月06日
    浏览(29)
  • Golang面试题从浅入深高频必刷「2023版」

    大家好,我是阳哥。 专注Go语言的学习经验分享和就业辅导。 Go语言相比C++/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goroutine等让人拍案叫绝的设计。

    2024年02月05日
    浏览(24)
  • # 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(1)

    段子手168 创建 artifactId 名为 spring_cloud_demo 的 maven 工程。 1)创建 子工程(子模块) — 创建数据库: create database shop; — 使用数据库: use shop; — 创建数据表: — 插入数据: insert into tb_product ( id , product_name , status , price , product_desc , caption , inventory ) values (1,‘iPhone 15 Pron’

    2024年04月25日
    浏览(26)
  • # 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3)

    段子手168 Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署, Eureka Server 实例会彼此增量地同步信息,从而确保所有节点数据一致。 事实上,节点之间相互注册是 Eureka Server 的默认行为。 1)修改 eureka_server 子工程(子模块)中的 application.yml 文件 模拟两个

    2024年04月26日
    浏览(25)
  • 数据结构 | 单链表SingleList【带你从浅入深真正搞懂链表】

    写在前面 很多粉丝经常私信问我有关 指针、链表 相关的问题,也非常希望我出一篇有关链表的教学,最近刚好也在整理有关单链表相关的知识点,便作了此文,为大家讲解有关单链表方面的各块知识点。 本文考虑到阅读者的水平和能力,内容有深有浅,总体讲解主要是 从

    2024年01月17日
    浏览(28)
  • this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)

    系列首发于公众号『前端进阶圈』 ,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。 调用位置 在理解 this 的绑定过程之前,首先要理解 调用位置 : 调用位置就是函数在代码中被调用的位置(而不是声明的位置) 。 通常来说,寻找调用位置就是寻找

    2024年02月08日
    浏览(35)
  • 由浅入深了解HashMap源码

           由经典面试题引入,讲解一下HashMap的底层数据结构?这个面试题你当然可以只答,HashMap底层的数据结构是由(数组+链表+红黑树)实现的,但是显然面试官不太满意这个答案,毕竟这里有一个坑需要你去填,那就是在回答HashMap的底层数据结构时需要考虑JDK的版本,因

    2023年04月13日
    浏览(27)
  • 由浅入深了解机器学习和GPT原理

    我不是一个机器学习专家,本来是一名软件工程师,与人工智能的互动很少。我一直渴望深入了解机器学习,但一直没有找到适合自己的入门方式。这就是为什么,当谷歌在2015年11月开源TensorFlow时,我非常兴奋,知道是时候开始学习之旅了。不想过于夸张,但对我来说,这就

    2024年02月09日
    浏览(22)
  • 由浅入深一步步了解什么是哈希(概念向)

    我们来重新认识一下数据查找的过程: 在顺序结构以及平衡树 中, 记录的关键码与其存储位置之间没有对应的关系 ,因此在 查找一个元素时,必须要经过关键码的多次比较 。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( l o g 2 N log_2 N l o g 2 ​ N ),搜索的效率取决

    2024年04月16日
    浏览(27)
  • 由浅入深带你了解数据结构中的二叉树

    1.树的概念及结构 1.1树的概念   树是一种非线性的数据结构,它是由n(n=0)个有限节点组成一个具有层次关系的集合。它的形状像一颗倒挂的树,因此我们把它叫做树 。其特点如下所示:   1.有一个特殊的节点,称为根节点,根节点没有前驱节点   2.除根节点外,其余节点被

    2024年04月26日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包