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

asp.net core Partial 分部视图、视图组件(core mvc 才支持)、视图、razor page、mvc

在这里插入图片描述

分部视图

在这里插入图片描述

在这里插入图片描述
》》》传参
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
》》两个东西换个名称,PartialView()=>渲染视图=>不带Layout

部分视图与普通视图没太大区别,它可以将重复使用的HTML内容结合起来,可以单独使用。
一般命名是在名称前面加下划线,放在/Views/Shared 目录下

分部视图在action中返回一定要用PartialView(),而不要偷懒使用View(),因为,如果你使用View()渲染视图,系统会认为你是一个标准视图,会为你加个默认的母板页(Layout),除非你显式的设置了Layout这个属性。

资料
在这里插入图片描述

视图组件

视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大。
视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据。
视图是通过模型绑定传递数据,

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

控制器也可以调用视图组件
@await Component.InvokeAsync(“UserInfo”, new { num = 10 })
控制器也可以调用视图组件
public IActionResult User(int num)
{
return ViewComponent(“UserInfo”,num);
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分部视图、视图组件

分部视图 就是模板,可接受和渲染数据,他们没有后端逻辑
分部视图通常不包含代码,或者只包含一些渲染逻辑。
视图组件通常会查询某个数据库来获取数据,视图组件 继承 ViewComponent。

Razor 页面 Razor 组件

》》》Razor 页面
在经典ASP.NET MVC 、ASP.NET MVC Core中,通过直接使用URL是无法引用Razor模板【就是视图文件 xxx.cshtml】
URL可用来链接到静态HTML页面或某个控制器操作方法生成的HTML输出。
但ASP.NET Core 2.0 之后,提供一个新的功能 Razor Page 【Razor 页面】
**Razor 页面 允许直接通过URL 调用 Razor模板【**就是视图文件 xxx.cshtml】,而不需要任何控制器的协调

Razor 页面 应用场景
有时,一些控制器方法只是简单的提供一些相当静态的标记。 如 About 关于页面,Contact 联系页面‘

Public  class HomeControler:Controller
{public IActionResult About{//view()  参数为空,默认 操作方法的视图名称return view(); }public IActionResult Contact{return view();}
}

从上面看到,没有数据从控制器传入视图,实际视图中也不期望有渲染逻辑。为什么要为这样一个简单的请求使用筛选器、控制器呢
所以诞生 Razor 页面 这个功能

当需要的只比静态HTML 复杂一点,而用不到完整的带有全部基础结构的Razor视图时,使用Razor 页面能够省去控制器的成本。
当然Razor 页面还支持一些相当高级的编程场景,例如 访问 数据库、传递表单、验证数据库等

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Razor 页面 完整支持 Razor语法,包括@inject指令 和 C#语法【以为有个xxxx.cs 文件】
@page 指令对于让 Razor 视图称为一个Razor页面至关重要,
因为这个指令在被处理后,告诉Asp.NET Core 基础结构将请求做为一个请求,即使该请求没有绑定到任何控制器【即就是不走控制器路由】。@page 指令会影响其它支持的指令行为,所以razor页面 第一个指令必须是@page
Razor 页面就是普通的xx.cshtml文件,保存在新增的Pages文件夹中。Pages文件夹通常位于根部
在Pages文件夹中,可以有任意多级子目录,每个目录中都可以包含Razor页面。
》》》不能将Razor页面放到Pages文件夹之外》》

》》》映射URL

如果a.cshtml,正好位于Pages文件夹下,那么 /a
如果b.cshtml 位于 pages/zen下 ,那么 /zen/b
所以映射规则 取得Razor页面文件相对于Pages的路径,然后去掉文件扩展名
如果控制器 MiscController类,同时还有个操作方法 contact,且还有Pages/Misc中有个contact.cshtml 页面
/misc/contact 同时满足控制器和razor页面, 则控制器优先

》》》Razor 页 被@page 包裹
在这里插入图片描述
在这里插入图片描述
》》》》app.MapRazorPages();:为 Razor Pages 配置终结点路由。
》》》》app.UseHttpsRedirection();:将 HTTP 请求重定向到 HTTPS。

》》》在@functions块中内嵌代码,不过推荐将PageModel代码放在一个单独的文件中
在这里插入图片描述

>>Razor page 实现 路由

》》》单个参数
在这里插入图片描述
》》》多个参数
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
XXX属性使用 [BindProperty] 特性来选择加入模型绑定。 当表单提交时,ASP.NET Core 运行时将发布的值绑定到 对应的模型上。模型。
[BindProperty] 会绑定名称与属性相同的表单值和查询字符串

@page 约束

@page “{id}”
@page “{id/code}”
@page “{id:int}”
@page “{id:int?}”
@page “{id:alpha:minlength(4)}”

razor page @functions指令

在这里插入图片描述
@functions 指令做为页面中的所有代码的容器,通常由两个方法构成

  1. OnGet 》》初始化标记的输入元素, 如果get提交,还会触发
  2. OnPost 》》处理表单提交的任何内容,post提交触发

HTML输入元素与代码元素之间的绑定是使用模型绑定层完成的 。用BindProperty特性装饰的xxx属性,在OnGet方法中初始化,其值渲染为HTML。当表单提交后,该属性将(通过模型绑定)包含提交的值

》》 Razor Page 布局
在这里插入图片描述

mvc 、razor page

在这里插入图片描述

razor 指令

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/53052.html

相关文章:

  • 【Java函数篇】Java 8 Predicate函数接口的用法详解
  • git的使用
  • leaflet(二)画中心点标记和范围
  • pdf怎么压缩的小一点?值得介绍的几种PDF文件压缩的方法
  • 第四届智能电力与系统国际学术会议(ICIPS 2024)
  • 威胁狩猎:基于ELK的日志监控
  • 鸿蒙NEXT开发-应用状态(基于最新api12稳定版)
  • 见证8K场景应用!BOSMA博冠与您相约2024北京安博会
  • 光耦合器固态继电器技术的创新
  • 软件工程(2)软件可靠性与保障措施
  • 【数据结构】宜宾大学-计院-实验四
  • 最好的人工AI智能写作软件排行(详细攻略)!
  • 代码随想录day41:part13
  • ubuntu编译kaldi和vosk
  • 【MATLAB 串口调试+虚拟串口测试】
  • 解决eclipse自动补全代码后会删除后面标黄的代码
  • Flink SQL+Hudi数据入湖与分析实践
  • 法人供应商绩效数据线上化PRD
  • 机械转行网络安全自学经历,零基础学网络安全,血泪总结的干货,零基础入门到精通,收藏这篇就够了
  • 邮件营销标题策略:提升邮件打开率的秘诀?