我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET中的Razor语法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET中的Razor语法是什么

本文小编为大家详细介绍“ASP.NET中的Razor语法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET中的Razor语法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Razor 不是一种编程语言。它是服务器端的标记语言。可以让您将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中。

当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器。在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库。服务器代码能创建动态的 HTML 内容,然后发送到浏览器。从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同。

一、Razor 语法

1、 Razor C# 语法规则

  • Razor 代码块包含在 @{ ... } 中 ,当行或多行。

  • 内联表达式(变量和函数)以 @ 开头 :@变量 或 @( 表达式 )

  • 代码语句用分号结束

  • 变量使用 var 关键字声明

  • 字符串用引号括起来

  • C# 代码区分大小写

  • C# 文件的扩展名是 .cshtml

<!-- Single statement block -->@{ var myMessage =    "Hello World"; }<!-- Inline expression or variable --><p>The value of myMessage is: @myMessage</p> <!--    Multi-statement block -->@{var greeting = "Welcome to our site!";var weekDay = DateTime.Now.DayOfWeek;var greetingMessage = greeting + " Here in Huston it is: " + weekDay;}<p>The greeting is: @greetingMessage</p>

2、Razor的作用域

大括号里面的就是表示作用域的范围,用形如 “@[code]”来写一段代码块。在作用域 “@(code)” 中输出也是用@符号的。

我的年龄:@{    int age = 25;    string sex = "男";    @age}性别: @(sex)

3、Razor和Html混合编写

  • a.在作用域内容如果是以html标签开始则视为文本输出

  • b.如果输出@,则使用@@

  • c.如果需在代码块中直接输出纯文字而不带HTML标签,则可以使用@:标签,如果在 "@:" 后面加上@就表示Razor语句的变量。

@{    var strzm = "abc";    @:this is a mail:2734796332@qq.com.this is var:@strzm,this is mail@strzm,this is @@    //输出abc    @strzm }

如果需要在代码块中输出续或不连续的多行纯文本,则使用text标签较为方便。

@if (Model.Price > 5M) {<text> 名称:<b>@Model.Name</b><br /> 分类:<b>@Model.Description</b><br /> 价钱:<b>@Model.Price</b><br /> <pre> 测试行一: <a>aaaa</a> 测试行二: @@ fda@aaa </pre> </text>}

4、变量

一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。变量使用 var 关键字声明,或通过使用具体类型声明。

// Using the var keyword:var greeting = "Welcome to RUNOOB.COM";var counter = 103;// Using data types:string greeting = "Welcome to RUNOOB.COM";int counter = 103;

5、数据类型

  • int    整数(全数字)    103, 12, 5168

  • float    浮点数    3.14, 3.4e38

  • decimal    十进制数字(高精度)    1037.196543

  • bool    布尔值    true, false

  • string    字符串    "Hello RUNOOB.COM", "John"

6、转换数据类型(string类型才能转)

  • AsInt()\IsInt():    转换字符串为整数   

    if (myString.IsInt()){   myInt=myString.AsInt();}
  • AsFloat()\IsFloat():    转换字符串为浮点数。  

  • AsDecimal()\IsDecimal():转换字符串为十进制数。

  • AsDateTime()\IsDateTime():    转换字符串为 ASP.NET DateTime 类型。  

  • AsBool()\IsBool():    转换字符串为布尔值。  

  • ToString():    转换任何数据类型为字符串。

    var  myInt=1234;myString=myInt.ToString();

7、循环

For 循环

<body>@for(var i = 10; i < 21; i++) {<p>Line @i</p>}</body>

For Each 循环

<body><ul>@foreach (var x in Request.ServerVariables){<li>@x</li>}</ul></body>

While 循环

<body>@{ var i = 0; while (i < 5) {i += 1; <p>Line @i</p> } }</body>

8、数组

</p><p>Kai is now in position@{string[] members = {"Jani", "Hege", "Kai", "Jim"};int i = Array.IndexOf(members, "Kai")+1;int len = members.Length;string x = members[2-1];}<html><body><h4>Members</h4>@foreach (var person in members){<p>@person</p>}<p>The number of names in Members are @len</p><p>The person at position 2 is @x</p><p>Kai is now in position @i</p></body></html>

9、逻辑条件

If 条件

@{var price=50;}<html><body>@if (price>30){<p>The price is too high.</p>}</body></html>

Else 条件

@{var price=20;}<html><body>@if (price>30){<p>The price is too high.</p> } else { <p>The price is OK.</p>} </body></html>

Else If 条件

@{var price=25;}<html><body>@if (price>=30) { <p>The price is high.</p> } else if (price>20 && price<30) { <p>The price is OK.</p> } else { <p>The price is low.</p> }</body></html>

Switch 条件

@{var weekday=DateTime.Now.DayOfWeek;var day=weekday.ToString();var message="";}<html><body>@switch(day){case "Monday":message="This is the first weekday.";break;case "Thursday":message="Only one day before weekend.";break;case "Friday":message="Tomorrow is weekend!";break;default:message="Today is " + day;break;}<p>@message</p></body></html>

二、Razor引擎

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

解释:Layout方式布局就相当于一个模板,我们在它地址地方去添加代码。类似于ASP.NET母版页中的ContentPlaceHolder服务器控件,在MVC中使用@RenderBody()来呈现子Web页面的内容,它可以省去我们在每个视图文件中写相同的html元素、JS和样式等的工作。 
母版页:(~/Views/Layout/_SiteLayout.cshtml)

母版的呈现是MVC内部处理的,这种以下划线(_)开头的视图文件,一般是不能直接返回给用户。

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

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

@{    Layout = "~/Views/Layout/_SiteLayout.cshtml";}<h2>    关于我的网站</h2><p>    这是一些内容显示在关于我们这个页面,我们用的是SiteLayout.cshtml这个主页母版页。    <br />    当前时间:@DateTime.Now</p>

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

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

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

<!DOCTYPE html><html><head>    <meta name="viewport" content="width=device-width" />    <title>Simple Site</title></head><body>   <!--头部-->       @RenderPage("~/Views/Layout/_header.cshtml")</body></html>

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

<div id="header">        <a href="#" rel="external nofollow"  rel="external nofollow" >主页</a>        <a href="#" rel="external nofollow"  rel="external nofollow" >关于我们</a></div>

3、Section区域(@RenderSection())

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

  • @RenderSecion()这个占位符表示:在这里会渲染页面里面的一个节(可以是html代码也可以是c#代码和Html的结合体)。

  • @RenderSection("scripts", required: false)做一个补充说明,第一个参数指明:在子页面被渲染的节的名称,第二个参数:指定子页面这个节是否是必需的,如果指定了required:true;但是在子页面没有给这个名称的节的话,编译是通不过的。

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

<!DOCTYPE html><html><head>    <meta name="viewport" content="width=device-width" />    <title>Simple Site</title></head><body>    <div id="left-menu">        @RenderSection("menu",true)    </div></body></html>

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

@{    Layout = "~/Views/Layout/_SiteLayout.cshtml";}<h2>    关于我的网站</h2><p>    这是一些内容显示在关于我们这个页面,我们用的是SiteLayout.cshtml这个主页母版页。    <br />    当前时间:@DateTime.Now</p>@section menu{    <ul id="sub-menu"> <li>菜单1</li> <li>菜单2</li> <li>菜单3</li> <li>菜单4</li> </ul> }

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

@if (IsSectionDefined("menu")) { @RenderSection("menu", false) } else { <p>menu Section is not defined!</p> }

三、Razor 帮助器

ASP.NET 帮助器是通过几行简单的 Razor 代码即可访问的组件。您可以使用 Razor 语法构建自己的帮助器,或者使用内建的 ASP.NET 帮助器。

下面是一些有用的 Razor 帮助器的简短说明:

  • Web Grid(Web 网格)

  • Web Graphics(Web 图形)

  • Google Analytics(Google 分析)

  • Facebook Integration(Facebook 集成)

  • Twitter Integration(Twitter 集成)

  • Sending Email(发送电子邮件)

  • Validation(验证)

@Href("~/")//表示网站的根目录 
@Html.Raw('<font color='red'>红字</font>')就会显示出红色的”红字“,不用的话会直接显示这段html字符串(<font color='red'>红字</font>)

自定义Helper

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

新建一个HelperMath.cshtml页面

ASP.NET中的Razor语法是什么

ASP.NET中的Razor语法是什么

HelperMath.cshtml页面写方法

@*求和*@@helper sum(int a, int b){    int result = a + b;    @result}

Index.cshtml页面调用

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

读到这里,这篇“ASP.NET中的Razor语法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET中的Razor语法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET中的Razor语法是什么

本文小编为大家详细介绍“ASP.NET中的Razor语法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET中的Razor语法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Razor 不是一
2023-07-02

ASP.NET中Razor语法怎么使用

Razor语法是一种在ASP.NET中用于创建动态网页的模板引擎。它允许开发人员将C#或VB.NET代码与HTML标记混合在一起,以便更轻松地生成动态内容。以下是一些常用的Razor语法示例:在HTML标记中嵌入C#代码:Welcome,
2023-10-23

ASP.NET Core中的Razor页面怎么创建

这篇文章主要介绍“ASP.NET Core中的Razor页面怎么创建”,在日常操作中,相信很多人在ASP.NET Core中的Razor页面怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET
2023-06-29

ASP.NET MVC 3中的Razor特性怎么使用

本篇内容主要讲解“ASP.NET MVC 3中的Razor特性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET MVC 3中的Razor特性怎么使用”吧!开工 目录在_Vie
2023-06-17

asp.net中DataBinder.Eval的用法是什么

在ASP.NET中,DataBinder.Eval方法用于绑定数据到控件上。它的主要作用是从数据源中获取字段的值,并将其绑定到控件上。DataBinder.Eval方法的用法如下:DataBinder.Eval(object conta
2023-10-23

ASP.NET中request.form的用法是什么

在ASP.NET中,Request.Form 是一个集合,用于获取由客户端(浏览器)通过 POST 方法发送到服务器的表单数据。使用 Request.Form 可以方便地访问表单中的各个字段值。可以通过字段名访问特定字段的值,例如 Req
ASP.NET中request.form的用法是什么
2024-02-29

asp.net中dropdownlist控件的用法是什么

ASP.NET中的DropDownList控件用于在web页面中创建一个下拉列表,供用户选择。使用DropDownList控件的步骤如下:1. 在ASP.NET页面上添加一个DropDownList控件:```html```2. 在后台代码
2023-10-10

ASP.Net中操作Ajax的方法是什么

在ASP.Net中,操作Ajax的方法主要有以下几种:1. 使用ASP.Net内置的Ajax控件:ASP.Net提供了一系列的Ajax控件,如UpdatePanel、ScriptManager等,可以通过在页面中添加这些控件来实现Ajax操
2023-09-26

ASP.NET中get和post方法的区别是什么

ASP.NET中get和post方法的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在网页设计中,无论是动态还是静态,get方法是默认的,它在URL地址长度是有限的,
2023-06-17

ASP.NET中Cookie的作用是什么

本篇文章给大家分享的是有关ASP.NET中Cookie的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ASP.NET Cookie在Web开发中应用较多。做用户登录,
2023-06-17

asp.net中AutoEventWireup的作用是什么

在ASP.NET中,AutoEventWireup是一个页面级别的属性,用于控制自动事件绑定的行为。默认情况下,AutoEventWireup属性被设置为true,表示ASP.NET自动绑定了页面上的事件处理程序。也就是说,当页面的事件(如
2023-09-14

ASP.NET DropDownList控件的用法是什么

ASP.NET DropDownList控件用于在Web页面上显示一个下拉列表,用户可以从中选择一个选项。它是一个常用的输入控件,用于收集用户的选择。使用ASP.NET DropDownList控件的基本步骤如下:1. 在页面的HTML标记
2023-10-12

ASP.NET BulletedList控件的用法是什么

ASP.NET BulletedList控件用于在网页上显示一个带项目符号的列表。它可以自动为列表项添加项目符号,无需手动添加。该控件的用法如下:1. 在ASP.NET网页中,使用标签来创建一个BulletedList控件。```html`
2023-10-10

ASP.NET LinkButton控件的用法是什么

ASP.NET中的LinkButton控件用于在网页上创建一个链接按钮。它可以响应用户的点击事件,并执行相应的服务器端代码。使用LinkButton控件的一般步骤如下:1. 将LinkButton控件添加到网页上,可以通过直接在代码中创建控
2023-10-12

ASP.NET 中Timer的作用是什么

这篇文章将为大家详细讲解有关ASP.NET 中Timer的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先得解决这个问题:如何让网页定时Post回Server端。 正常情况下这个
2023-06-18

ASP.NET TextBox控件的用法是什么

ASP.NET TextBox控件用于在网页上显示和接收用户输入的文本信息。它允许用户在文本框中输入文本,并将其提交给服务器进行处理。使用ASP.NET TextBox控件,可以实现以下功能:1. 显示默认值:可以在文本框中设置默认文本,当
2023-10-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录