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

Razor代码复用

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.lryc.cn/news/91897.html

相关文章:

  • PRL:上海交大张文涛团队实现量子材料相关突破
  • impala中group_concat()函数无法对内容进行order by
  • MySQL 数据库全局变量中文解释
  • 设计模式之~状态模式
  • 【21JavaScript break 和 continue 语句】JavaScript中的break和continue语句:控制循环流程的关键技巧
  • 【SpringBoot】 设置随机数据 用于测试用例
  • chatgpt赋能python:Python如何获取微信聊天记录
  • VP记录:Codeforces Round 599 (Div. 2) A~D
  • 01-项目介绍
  • 《Python编程从入门到实践》学习笔记06字典
  • 为什么说程序员和产品经理一定要学一学PMP
  • LearnOpenGL-高级OpenGL-9.几何着色器
  • 8.视图和用户管理
  • bootstrapvue上传文件并存储到服务器指定路径及从服务器某路径下载文件
  • Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二)
  • C++基础讲解第八期(智能指针、函数模板、类模板)
  • JMeter 测试 ActiveMq
  • 2023年4月和5月随笔
  • 新Linux服务器安装Java环境[JDK、Tomcat、MySQL、Nacos、Redis、Nginx]
  • 精简总结:一文说明软件测试基础概念
  • 通过 Gorilla 入门机器学习
  • 【二叉树】298. 二叉树最长连续序列
  • Matlab论文插图绘制模板第100期—紧凑排列多子图(Tiledlayout)
  • [2.0快速体验]Apache Doris 2.0 日志分析快速体验
  • MySQL学习-数据库创建-数据库增删改查语句-事务-索引
  • 浏览器渗透攻击-渗透测试模拟环境(9)
  • MySQL数据库基础(基础命令详解)
  • 企业培训直播场景下嘉宾连线到底是如何实现的?
  • 五、JSP05 分页查询及文件上传
  • 一起看 I/O | 借助 Google Play 管理中心价格实验,优化定价策略