Razor语法和Razor引擎大全

一、Razor语法

1、Razor的标识符

         解释:@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了。web form中使用<%%>中写服务器代码一个道理。在vs工具里面提供了代码着色和智能感应的功能。

 
  1. @{

  2. string userName = "启超";

  3. <span>我的名字叫:@userName</span>

  4. <span>我的出生日期:@DateTime.Now.ToString("yyyy-MM-dd");</span>

  5. }

2、Razor的作用域

         解释:在上面一个例子中都已经使用到了大括号{},不错,大括号里面的就是表示作用域的范围,用形如 “@{code}”来写一段代码块。在作用域 “@(code)” 中输出也是用@符号的。

         Index.cshtml页面:

 

 
  1. 我的年龄:

  2. @{

  3. int age = 25;

  4. string sex = "男";

  5. @age

  6. }性别:@(sex)

 

3、Razor和Html混合编写

         解释: 
         a.在作用域内容如果是以html标签开始则视为文本输出 
         b.如果输出@,则使用@@ 
         c.如果要输出非html标签和非Razor语句的代码,则用 "@:" ,他的作用是相当于在处于html下面编写一样了,如果在 "@:" 后面加上@就表示Razor语句的变量,如下:

        Index.cshtml页面:

 

 
  1. @{

  2. var strzm = "abc";

  3. @:this is a mail:2734796332@qq.com.this is var:@strzm,this is mail@strzm,this is @@

  4.  
  5. //输出abc

  6. @strzm

  7. }

 

4、Razor类型转换

         解释:As系列扩展方法和Is系列扩展方法(string类型才能转) 
           

 
  1. AsInt(),IsInt() 

  2.  AsBool(),IsBool() 

  3.  AsFloat(),IsFloat() 

  4.  AsDecimal(),IsDecimal() 

  5.  AsDateTime(),IsDateTime() 

  6. ToString()

        Index.cshtml页面:

 
  1. @{

  2. string ss = "123";

  3. }

  4. string转int:@ss.AsInt()

5、Razor其他

        解释:

       

 
  1. @Href("~/")//表示网站的根目录 

  2.  @Html.Raw('<font color='red'>红字</font>')就会显示出红色的”红字“,不用的话会直接显示这段html字符串(<font color='red'>红字</font>)

 

————————————————————————————————————————————

二、Razor引擎

1、布局(Layout)(@RenderBody()方法)

        解释:Layout方式布局就相当于一个模板一样的,我们在它地址地方去添加代码。相当于定义好框架,作为一个母版页的,在它下面的页面需要修改不同代码的地方使用@RenderBody()方法。 
        母版页:(~/Views/Layout/_SiteLayout.cshtml)

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="utf-8"/>

  5. <title>我的网站 - @Page.Title</title>

  6. </head>

  7. <body>

  8. @RenderBody()

  9. </body>

  10. </html>

 

        子页面:(~/Views/Home/About.cshtml)

 
  1. @{

  2. Layout = "~/Views/Layout/_SiteLayout.cshtml";

  3. }

  4. <h1>

  5. 关于我的网站

  6. </h1>

  7. <p>

  8. 这是一些内容显示在关于我们这个页面,我们用的是SiteLayout.cshtml这个主页母版页。

  9. <br />

  10. 当前时间:@DateTime.Now

  11. </p>

 

 

 

2、页面(@RenderPage()方法)

 

 

        解释:page当需要在一个页面中,输出另外一个Razor文件(页面)的内容时候用到,比如头部或尾部这些公共的内容时需要用到,用@RenderPage()方法

        母版页:(~/Views/Layout/_SiteLayout.cshtml)

 

 
  1. <!DOCTYPE html>

  2.  
  3. <html>

  4. <head>

  5. <meta name="viewport" content="width=device-width" />

  6. <title>Simple Site</title>

  7. </head>

  8. <body>

  9. <!--头部-->

  10. @RenderPage("~/Views/Layout/_header.cshtml")

  11.  
  12. <!--底部-->

  13. @RenderPage("~/Views/Layout/_footer.cshtml")

  14. </body>

  15. </html>

 

        公共页:(~/Views/Layout/_header.cshtml)

 
  1. <div id="header">

  2. <a href="#">主页</a>

  3. <a href="#">关于我们</a>

  4. </div>

3、Section区域(@RenderSection())

 

 

      解释:Section是定义在Layout的页面中使用的。在Layout的页面中用。在要Layout的父页面中使用@RenderSection()方法。

       母版页:(~/Views/Layout/_SiteLayout.cshtml) 

 
  1. <!DOCTYPE html>

  2.  
  3. <html>

  4. <head>

  5. <meta name="viewport" content="width=device-width" />

  6. <title>Simple Site</title>

  7. </head>

  8. <body>

  9. <div id="left-menu">

  10. @RenderSection("menu",true)

  11. </div>

  12. </body>

  13. </html>

 

         公共页:(~/Views/Layout/_menu.cshtml)      

 

 
  1. @{

  2. Layout = "~/Views/Layout/_SiteLayout.cshtml";

  3. }

  4. <h1>

  5. 关于我的网站

  6. </h1>

  7. <p>

  8. 这是一些内容显示在关于我们这个页面,我们用的是SiteLayout.cshtml这个主页母版页。

  9. <br />

  10. 当前时间:@DateTime.Now

  11. </p>

  12. @section menu{

  13. <ul id="sub-menu">

  14. <li>菜单1</li>

  15. <li>菜单2</li>

  16. <li>菜单3</li>

  17. <li>菜单4</li>

  18. </ul>

  19. }

 

        如果在子页面中没有去实现了menu了,则会抛出异常。我们可以它的重载@RenderSection("menu", false)

 

 
  1. @if (IsSectionDefined("menu"))

  2. {

  3. @RenderSection("menu", false)

  4. }

  5. else {

  6. <p>menu Section is not defined!</p>

  7. }

4、Helper

 

     @helper就是可以定义可重复使用的帮助器方法,不仅可以在同一个页面不同地方使用,还可以在不同的页面使用。

     4.1、新建一个HelperMath.cshtml页面

image image

     4.2、HelperMath.cshtml页面写方法

 

 
  1. @*求和*@

  2. @helper sum(int a, int b)

  3. {

  4. int result = a + b;

  5. @result

  6. }

 

       4.3、Index.cshtml页面调用

1+2=@HelperMath.sum(1, 2)<br />

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

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

相关文章

让Team Foundation Server/TFS自动记住用户名密码解决方案

在使用Team Foundation Server&#xff08;以下简称TFS&#xff09; 的时候&#xff0c;在每次打开Visual Studio TFS时候&#xff0c;需要输入用户名和秘密&#xff0c;比较麻烦。 现提供一种方法可以解决这个问题&#xff1a; 依次执行下面操作&#xff1a; 打开控制面板--&…

TFS(Team Foundation Server)敏捷使用教程

一、引言 1 中国式软件过程的坏味道 RUP&#xff0c;CMM/CMMI到了中国就变了味。。。。。。 2 Team Foundation Server TFS是软件开发的协作平台&#xff0c;它要解决的首要问题是团队成员的协作问题。比如说&#xff1a; 研发团队内部怎么协作&#xff0c;产品经理&#x…

【PAT - 甲级1020】Tree Traversals (25分)(树的遍历,给定中序后序,求层次遍历)

题干&#xff1a; Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree. Input Specifi…

银行卡密码的加密、MAC计算

简介 在银行、银联、第三方支付等金融系统中&#xff0c;对银行卡密码等信息的加解密&#xff0c;对交易数据的加解密无处不在&#xff0c;在商场刷卡消费的POS机&#xff0c;在ATM机器取款等都需要对数据加密以保护数据安全&#xff0c;不被窃取。 本文主要对POS机的安全处理…

【Python学习】 - - 链表推导式[ 2*x for x in X ]、匿名函数、并行迭代

列表推导式[x for x in range(n)] 问题&#xff1a;请计算出1~9间的整数的平方 常规方法 for i in range(1,10):print(i*i) 链表推导式&#xff1a; print([x*x for x in range(1,10)]) 匿名函数方法&#xff1a; 匿名函数语法形式&#xff1a; lambda [arg1, arg2, arg3,…

C#多线程和线程池

.Net的公用语言运行时&#xff08;Common Language Runtime&#xff0c;CLR&#xff09;能区分两种不同类型的线程&#xff1a;前台线程和后台线程。这两者的区别就是&#xff1a;应用程序必须运行完所有的前台线程才可以退出&#xff1b;而对于后台线程&#xff0c;应用程序则…

GitHub.com上的那些东西你都知道什么意思吗?

GitHub初学入门者的图谱&#xff0c;介绍Github网站每个功能的意思 一、键盘快捷键 在GitHub中&#xff0c;很多页面都可以使用键盘快捷键。在各个页面按下“shift /”都可以打开键盘快捷键一览表&#xff0c;如下图&#xff1a; 快捷键 二、工具栏 工具栏 LOGO 点击GitHub…

【Python学习】 - sklearn学习 - 数据集分割方法 - 随机划分与K折交叉划分与StratifiedKFold与StratifiedShuffleSplit

一、随机划分 import numpy as np from sklearn import datasetsiris datasets.load_iris() X iris.data y iris.target# 1&#xff09;归一化前&#xff0c;将原始数据分割 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test train_t…

【Python学习】 - sklearn - 用于生成数据的make_blobs模块

函数原型&#xff1a; sklearn.datasets.make_blobs(n_samples100, n_features2, centers3, cluster_std1.0, center_box(-10.0, 10.0), shuffleTrue, random_stateNone) 参数含义&#xff1a; n_samples: int, optional (default100) The total number of points equally di…

微服务架构及幂等性

微服务架构 微服务架构是一种架构概念&#xff0c;旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。它的主要作用是将功能分解到离散的各个服务当中&#xff0c;从而降低系统的耦合性&#xff0c;并提供更加灵活的服务支持。 和 微服务 相对应的&#xff0c;这…

【Python学习】 - Matplotlib二维绘图 - plt.matshow()和plt.imshow()区别对比

给定一个8*8的数据&#xff0c;用两种方式分别进行输出。 xx np.zeros((8,8),dtype np.uint8) xx[0,0] 13im Image.fromarray(xx) plt.imshow(im)plt.matshow(xx) plt.show() 输出&#xff1a; 得出结论&#xff1a; 首先我不知道为啥两个窗口是不一样大的。 其次发现图…

【机器学习】 - 数据预处理之数据归一化(标准化)与实战分析,正则化

一、为什么要进行数据归一化 定义&#xff1a;把所有数据的特征都归到 [0,1] 之间 或 均值0方差1 的过程。原则&#xff1a;样本的所有特征&#xff0c;在特征空间中&#xff0c;对样本的距离产生的影响是同级的&#xff1b;问题&#xff1a;特征数字化后&#xff0c;由于取值…

【基于Python】 - 人工智能机器学习深度学习数据分析 - 常见问题,常用的套路与操作(持续更新)

20200221&#xff1b; 1.做分类问题的时候&#xff0c;给定你标签&#xff0c;你想知道每一类标签的出现频数&#xff0c;可以使用这个函数&#xff1a;np.bincount()。 如果想分析一下数据样本是否均衡的时候&#xff0c;可以考虑这种操作&#xff0c;代码十分简明。 2. 当…

Entity Framework 简介

转贴&#xff1a;链接https://www.cnblogs.com/davidzhou/p/5348637.html 侵删&#xff0c;谢谢 第一篇&#xff1a;Entity Framework 简介 先从ORM说起吧&#xff0c;很多年前&#xff0c;由于.NET的开源组件不像现在这样发达&#xff0c;更别说一个开源的ORM框架&#xff0…

【Python学习】 - pyecharts包 - 地图可视化

安装&#xff1a; https://pan.baidu.com/s/1vAlSjVbHt0EDJY6C_38oEA 提取码&#xff1a;t9be 在这个链接中下载对应的.whl文件&#xff0c;放到下图所示的目录中。 然后打开anaconda prompt 找到对应的目录&#xff0c;输入&#xff1a; pip install pyecharts-0.1.9.4-py…

【机器学习】 - 关于图像质量评价IQA(Image Quality Assessment)

图像质量评价&#xff08;Image Quality Assessment,IQA&#xff09;是图像处理中的基本技术之一&#xff0c;主要通过对图像进行特性分析研究&#xff0c;然后评估出图像优劣&#xff08;图像失真程度&#xff09;。 主要的目的是使用合适的评价指标&#xff0c;使得评价结果…

【机器学习】 - CNN

什么是卷积神经网络&#xff0c;它为何重要&#xff1f; 卷积神经网络&#xff08;也称作 ConvNets 或 CNN&#xff09;是神经网络的一种&#xff0c;它在图像识别和分类等领域已被证明非常有效。 卷积神经网络除了为机器人和自动驾驶汽车的视觉助力之外&#xff0c;还可以成功…

Asp.Net中WebForm与MVC,Web API模式对比

webform&#xff0c;web mvc和web api都是asp.net官方的三套框架&#xff0c;想对比下三者的关系&#xff0c;查了下资料&#xff0c;web api跟web mvc基本同属一脉&#xff0c;只是mvc多了一个视图渲染&#xff0c;网上有些博客介绍了webform和mvc底层源码实现的不同&#xff…

【机器学习】 - Keras学习 - TensorBoard模块 - 可视化模型训练过程神器

运行环境&#xff1a;Win10 anaconda3。 TensorFlow版本&#xff1a;2.0.0 import numpy as np import tensorflow as tf import tensorflow.keras from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import matplotlib.pyplot as…

无废话SharePoint入门教程一[SharePoint概述]

一、前言 听说SharePoint也有一段时间了&#xff0c;可一直处在门外。最近被调到SharePoint实施项目小组&#xff0c;就随着工作一起学习了一下实施与开发。但苦于网上SharePoint入门的东西实在太少&#xff0c;导致自学入门很难&#xff0c;不知道SharePoint这东西到底能做什么…