Razor代码复用

news2025/1/10 1:43:23

1.布局(Layout)复用

  Layout的使用,就像WebForm的模板页一样,甚至会更加简单,更加方便和明了。

  要使用Layout,首先要在模板页相应的位置添加@RenderBody()方法:

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>测试网站 - @Page.Title</title>
    </head>
    <body>
        @RenderBody()
    </body>
</html>

  在要使用模板页的页面中,指定所使用的模板页:

@{
    Layout = "/LayoutPage.cshtml";
    Page.Title = "第一个子页面";
}

<p>This is a layout test</p>

  Layout的加载顺序不同于模板页,它是先加载子页,然后再加载布局页的。

  2.页面(Page)复用

  在Razor中,我们可以轻松的在页面中输出另一个页面的HTML代码:

<p>
    @RenderPage("/SubPage.cshtml")
</p>

  SubPage的代码如下:

<font color="red">这是一个子页面</font>

  3.Section

  Section是在布局页(Layout Page)中使用的东西,在使用了布局页的子页面中定义Section的内容,布局页才能够使用。如果Page1.cshtml页面使用了布局页Layout.cshtml,那么,我们可以在Page1.cshtml中定义Section:

@section header{
    <b>Header Section</b>
}

@section footer{
    <b>footer Section</b>
}

  Layout.cshtml的代码:

<body>
        @RenderSection("header");

        @RenderBody()

        @RenderSection("footer");
    </body>

  需要说明一点,虽然没有找到相应的文档,但我在测试的时候,只发现了这一种用法……

  4.Helper复用

  Helper是用来简化代码编写的,通常用来处理输出。例如,我们可以为一个模型构建一个Helper,用来处理该模型的Html输出;再比如,我们为系统菜单创建一个Helper,方便我们使用。

  定义Helper,需要使用@helper标记,在该标记后面添加名称和相应的代码:

@helper MenuEx(params string[] strs){
    <ul>
        @foreach(string str in strs){
            <li>@str</li>
        }
    </ul>
}

  这种写法非常类似与类的静态方法,在这个MenuEx中,需要传递字符串数组作为参数。

  另外,我们通常会把一类Helper放在一个cshtml文件中,这个文件名就相当于类名。例如MenuEx放在文件 HelperEx.cshtml文件中,在Page1.cshtml中的使用方法如下:

<p>
    @HelperEx.MenuEx("Microsoft", "IBM", "Apple", "Google")
</p>

  这是我们自定义的内容,另外,系统还为我们提供了一些列的Helper,用来简化Html的书写。这些Helper放在@Html中,我们可以方便的使用:

<p>
    @Html.TextBox("txtName")
</p>

  

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

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

相关文章

2.7 编译型和解释型

2.7 编译型和解释型 前面我们使用java和javac命令把Hello&#xff0c;World&#xff01;在控制台输出。那为什么输出&#xff0c;这里我们需要掌握两个知识点。编译型语言和解释型语言。在计算机的高级编程语言就分为编译型语言和解释型语言。而我们的Java既有编译型的特点也有…

docker compose部署ELK

1、准备下载相关镜像 docker pull logstash:7.6.2 docker pull kibana:7.6.2 docker pull elasticsearch:7.6.2 docker pull elastic/filebeat:7.6.22、创建相关文件夹 新建文件夹使用命令&#xff1a;mkdir /opt/docker_elk 在/opt/docker_elk/elasticsearch新建plugins和da…

chatgpt赋能python:Python代码怎么用?一个10年编程经验工程师的实践总结

Python代码怎么用&#xff1f;一个10年编程经验工程师的实践总结 如果你正在学习Python或已经是一名Python开发者&#xff0c;你需要知道如何正确地使用Python代码以实现项目需求。在本文中&#xff0c;我将分享我的10年Python编程经验&#xff0c;并介绍一些关于如何使用Pyth…

零基础认识java-后端 项目结构搭建、目录概况

后端项目构建 1、创建数据库表 2、创建项目 打开 idea&#xff0c;新建一个项目&#xff0c;在 new 一个新项目的时候&#xff0c;选择 Spring Initializr&#xff0c;在选择项目依赖的时候勾选 web下的 Spring Web Starter 和 SQL下的 MySQL Driver 和 MyBatis Framework &am…

Prop type `object` is forbidden

这种错一般是ESLint的配置的规则 项目里搜一下react/forbid-prop-types 可以看到把any和object禁用了&#xff0c;根据需要删除object即可

2023 CCF-百度松果基金正式启动申报!大语言模型、AIGC等热点课题首次公布

5 月 31 日&#xff0c;2023 年 CCF-百度松果基金&#xff08;简称“松果基金”&#xff09;正式启动申报&#xff0c;面向全球高校及科研院所青年学者开放&#xff0c;入选项目将获得松果基金百万课题基金及千万级支持与服务。申报截至 2023 年 7 月 10 日。 本届松果基金共设…

Nginx通过用户IP获取所在国家及地理位置

文章目录 前言一、GeoLite2-Country是什么&#xff1f;二、使用步骤2.1 下载GeoLite2-Country数据库文件&#xff0c;并导入Nginx2.2 配置Nginx模块2.3 使用变量来获取国家信息2.4 验证配置 总结 前言 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器。它最初设计目的是…

JavaScript了解unshift,push在头部尾部添加元素的代码

以下为JavaScript了解unshift&#xff0c;push在头部尾部添加元素的程序代码和运行截图 目录 前言 一、unshift在头部添加元素 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 二、push在尾部添加元素 2.1 运行流程及思想 2.2 代码段 2.3 JavaS…

Javascript 俄罗斯方块 游戏代码

本俄罗斯方块代码采用 JavaScript 脚本代码写成&#xff0c;简单易懂&#xff1b; 全代码采用静态类及静态变量成员组成&#xff1b; 全脚本通过实现代码全局配置 OLSFK.Options {...} 定义方块起始坐标及定义各自的旋转点&#xff1b; 从初始化俄罗斯方块界面开始&#x…

【C++】指针 - 定义和使用,所占内存空间,空指针,野指针,const 修饰指针,指针和数组,指针和函数

文章目录 1. 定义和使用2. 所占内存空间3. 空指针4. 野指针5. const 修饰指针6. 指针和数组7. 指针和函数 1. 定义和使用 数据类型 * 变量名; 指针的作用是&#xff0c;可以通过指针间接访问内存。 内存编号是从 0 开始记录的&#xff0c;一般用十六进制数字表示。可以利用指…

关于如何用好线程池的一些建议

文章目录 1. 线程的使用场景2. 线程池创建3. 参数的配置建议常见的拒绝策略其他的拒绝策略 4. 线程池的任务处理流程5. 线程的状态6. 线程池的监控 1. 线程的使用场景 异步任务 简单来说就是某些不需要同步返回业务处理结果的场景&#xff0c;比如&#xff1a;短信、邮件等通…

一款IP渗透小工具

MoreFind 一款用于快速导出URL、Domain和IP的小工具 快速安装 方式一: 通过Go包管理安装 go install github.com/mstxq17/MoreFindlatest 方式二: 直接安装二进制文件 wget --no-check-certificate https://ghproxy.com/https://github.com/mstxq17/MoreFind/releases/…

软件测评师2012年下半年考试真题

基础知识&#xff1a; 解析&#xff1a;死锁就是运行不下去了&#xff0c;但是这里它说资源是同类型的&#xff0c;也就是说&#xff0c;我多出来的一个资源&#xff08;11个资源5个进程&#xff0c;每个进程分配2个&#xff09;给其中一个进程之后&#xff0c;运行完了资源释放…

【源码篇】基于SpringBoot+thymeleaf实现的图书管理系统

系统介绍 基于SpringBootthymeleaf实现的图书管理系统分为管理员、读者两个登录角色&#xff0c;一共是8个功能模块 管理员权限 图书管理&#xff1a; 添加图书&#xff1a;书名、作者、出版社、ISBM、简介、价格、出版日期、分类、数量查询图书&#xff1a;根据书名或分类…

Tomcat发布成服务

一、配置服务 1.配置bin目录下的service.bat&#xff08;用于生成新服务&#xff09; 配置内容&#xff1a; rem Tomcat解压根目录 set CATALINA_HOMED:\apache-tomcat-7.0.55-8080 rem 服务显示名称&#xff08;服务中对外显示的名称&#xff09; set PR_DISPLAYNAMEapache…

ChunJun FTP Connector 功能扩展解读

本文将从 FTP Connector 的功能详解&#xff0c;自定义文件切割及自定义 FileFormat 三个方面为大家带来 ChunJun FTP Connector 的功能扩展分享。 FTP Connector 详解 FTP 是用于在网络上进行文件传输的一套标准协议&#xff0c;它工作在 OSI 模型的第七层&#xff0c; TCP …

从0到1搭建自己的脚手架(java后端) | 京东云技术团队

一、脚手架是什么 脚手架是一种基础设施工具&#xff0c;用于快速生成项目的框架代码和文件结构。它是一种标准化的开发工具&#xff0c;使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统。 二、脚手架的意义 主流的微服务架构体系下很多公司会将原有…

HarmonyOS/OpenHarmony应用开发-ArkTS语言基本语法说明

以一个具体的示例来说明ArkTS的基本组成。如下图所示&#xff0c;当开发者点击按钮时&#xff0c;文本内容从“Hello World”变为“Hello ArkUI”。 图1 示例效果图 本示例中&#xff0c;ArkTS的基本组成如下所示。 图2 ArkTS的基本组成 装饰器&#xff1a; 用于装饰类、结构…

impala中group_concat()函数无法对内容进行order by

描述&#xff1a; 使用的是impala数据库&#xff0c;假设有四笔数据&#xff0c;是无序的&#xff0c;业务上要求将其行转列成一行数据&#xff0c;并且里面的数据要按从小到大排序。 过程&#xff1a; 猜测&#xff1a; 数据库Oracle、Mysql、MSsql等支持group_concat中使…

依赖倒置原则:高层代码和底层代码,到底谁该依赖谁?

前言 上一篇&#xff0c;我们讲了 ISP 原则&#xff0c;知道了在设计接口的时候&#xff0c;我们应该设计小接口&#xff0c;不应该让使用者依赖于用不到的方法。 依赖这个词&#xff0c;程序员们都好理解&#xff0c;意思就是&#xff0c;我这段代码用到了谁&#xff0c;我就…