Razor代码复用

news/2024/11/25 13:26:41/

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.ppmy.cn/news/139489.html

相关文章

2.7 编译型和解释型

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

Intel-4004微处理器(MCS-4微机)

从最开始进行分析&#xff0c;一步一步扩展与改进&#xff0c;直到今天的高速信息处理时代 最难的是&#xff0c;该处理器时间太早&#xff0c;很多资料和功能信息都很难查找 4004芯片&#xff1a; 4004历史 Intel-4004已经很难买到了&#xff0c;可以说是“老古董”。 Intel…

CSS 选择器的常见用法

前言 CSS在编写代码的时候有很多种样式&#xff0c;和和HTML&#xff0c;JS相似&#xff0c;他们都是运行在浏览器中的&#xff0c;下面就介绍一下CSS选择器的常见用法。 标签选择器使用标签名把页面中所有同名标签都选中类选择器使用.类名的方式对应一组CSS属性id选择器使用 …

Spring父子容器

一、痛点 当前开发工程以来的spring-boot-starter脚手架&#xff0c;配置了很多通用的bean&#xff0c;而部分无法满足自身需求&#xff0c;因此需要自定义bean&#xff0c;这时候就有可能出现自己定义bean和脚手架或者引入的第三方依赖中的某个bean冲突&#xff0c;导致出现b…

小米联合金山云发布“1KM边缘计算” 携手布局“云+边缘”新赛道

金山云CEO王育林&#xff1a; “今天是一个特别特别特别的发布会&#xff0c;因为小米每次发布会都有硬件&#xff0c;而这次是和我们金山云联合发布“1KM边缘计算”解决方案&#xff0c;打造“云亿级终端”边缘计算模式。当然我们和小米的合作属于厚积薄发&#xff0c;是之前一…

盘点 | 2018年IoT蓄势待发

来源 | 地歌网 文 | 曹亦卿 编辑 | 夏广川 5G前夜&#xff0c;IoT厚积薄发&#xff0c;未来是否已来&#xff1f; 2018年&#xff0c;互联网圈儿大事不断。小米与美团点评高调上市&#xff0c;拼多多与趣头条弯道超车&#xff0c;马云“禅让”推合伙人制&#xff0c;腾讯变革…

MySQL数据库 第0章:每章SQL命令总结

MySQL数据库 第0章&#xff1a;每章SQL命令总结 MySQL数据库 第1章&#xff1a;数据库入门MySQL数据库 第2章&#xff1a;数据库基本操作MySQL数据库 第3章&#xff1a;数据类型与约束MySQL数据库 第4章&#xff1a;数据库设计MySQL数据库 第5章&#xff1a;单表操作MySQL数据库…

近场通信技术

目录标题 学习内容一、三种近场通信技术的特点1、NFCNFC技术的主要特点如下&#xff1a; 2、BlueToothBlueTooth技术的主要特点如下&#xff1a; 3、WIFIWIFI技术的主要特点如下&#xff1a; 4.三种技术比较 二、浅谈未来近场通信技术的应用场景1、NFC2、BlueTooth3、WIFI 学习…