目录

什么是 Razor?

Razor 帮助器

ASP.NET Razor - C# 和 VB 代码语法

主要的 Razor C# 语法规则

它是如何工作的?

使用对象

If 和 Else条件

读取用户输入

变量

数据类型

运算符

转换数据类型

For 循环

For Each 循环

While 循环

数组

Switch 条件


什么是 Razor?

首先 :Razor 不是一种编程语言。它是服务器端的标记语言。

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

基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。

当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。

服务器  <  ——        页面(包含     Razor 代码 )

↓     ——>     解析过的Razor 代码   html  ↑

通过服务器的运行,代码能执行复杂的任务,比如进入数据库。

@ Razor 是基于 ASP.NET 的,是为创建 Web 应用程序而设计的。

它具有传统 ASP.NET 的功能,但更容易使用并且更容易学习。

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(验证)

ASP.NET Razor - C# 和 VB 代码语法


Razor 同时支持 C# (C sharp) 和 VB (Visual Basic)。

主要的 Razor C# 语法规则

  • Razor 代码块包含在 @{ ... } 中
  • 内联表达式(变量和函数)以 @ 开头
  • 代码语句用分号结束
  • 变量使用 var 关键字声明
  • 字符串用引号括起来
  • C# 代码区分大小写
  • C# 文件的扩展名是 .cshtml
@{ var myMessage =	"Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>

它是如何工作的?

Razor 是一种将服务器代码嵌入在网页中的简单的编程语法。

Razor 语法是基于 ASP.NET 框架,专门用于创建 Web 应用程序的部分 Microsoft.NET 框架。

Razor 语法支持所有 ASP.NET 的功能,但是使用的是一种简化语法,对初学者而言更容易学习,对专家而言更有效率的。

Razor 网页可以被描述成带以下两种类型内容的 HTML 网页: HTML 内容和 Razor 代码。

当服务器读取页面时,它首先运行 Razor 代码,然后再发送 HTML 页面到浏览器。

在服务器上执行的代码能够执行一些在浏览器上不能完成的任务,比如,访问服务器数据库。

服务器代码能创建动态的 HTML 内容,然后发送到浏览器。

从浏览器上看,服务器代码生成的 HTML 与静态的 HTML 内容没有什么不同。

带 Razor 语法的 ASP.NET 网页有特殊的文件扩展名 cshtml(Razor C#)或者 vbhtml(Razor VB)。

使用对象

服务器编码往往涉及到对象。

"Date" 对象是一个典型的内置的 ASP.NET 对象,

对象也可以是自定义的,一个网页,一个文本框,一个文件,一个数据库记录。

对象有用于执行的方法。一个数据库记录可能有一个 "Save" 方法,一个图像对象可能有一个 "Rotate" 方法,一个电子邮件对象可能有一个 "Send" 方法。

对象也有用于描述各自特点的属性。ASP.NET Date 对象有一个 Now 属性(写成 Date.Now),Now 属性有一个 Day 属性(写成 Date.Now.Day)。下面实例演示了如何访问 Date 对象的一些属性:

<td>@DateTime.Now.Day</td>

If 和 Else条件

动态网页的一个重要特点是,您可以根据条件决定做什么。

@{
var txt = "";
if(DateTime.Now.Hour > 12)
{txt = "Good Evening";}
else
{txt = "Good Morning";}
}

读取用户输入

动态网页的另一个重要特点是,您可以读取用户输入。

输入是通过 Request[] 功能读取的,并且传送输入数据是经过 IsPost 条件判断。

@{
var totalMessage = "";
if(IsPost)//是否为post提交
{
var num1 = Request["text1"];//请求过来的 text1 的参数名称
var num2 = Request["text2"];//请求过来的 text2 的参数名称
var total = num1.AsInt() + num2.AsInt();
totalMessage = "Total = " + total;
}
}

变量

变量是用来存储数据的。

一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。

变量使用 var 关键字声明,或通过使用类型(如果您想声明类型)声明,但是 ASP.NET 通常能自动确定数据类型。

数据类型

下面列出了常用的数据类型:

类型 描述 实例
int 整数(全数字) 103, 12, 5168
float 浮点数 3.14, 3.4e38
decimal 十进制数字(高精度) 1037.196543
bool 布尔值 true, false
string 字符串 "Hello RUNOOB.COM", "John"

运算符

运算符告诉 ASP.NET 在表达式中执行什么样的命令。

C# 语言支持多种运算符。下面列出了常用的运算符:

运算符 描述 实例
= 给一个变量赋值。 i=6
+

-

*

/
加上一个值或者一个变量。

减去一个值或者一个变量。

乘以一个值或者一个变量。

除以一个值或者一个变量。
i=5+5

i=5-5

i=5*5

i=5/5
+=

-=
变量递增。

变量递减。
i += 1

i -= 1
== 相等。如果值相等则返回 true。 if (i==10)
!= 不等。如果值不等则返回 true。 if (i!=10)
<

>

<=

>=
小于。

大于。

小于等于。

大于等于。
if (i<10)

if (i>10)

if (i<=10)

if (i>=10)
+ 连接字符串(一系列互相关联的事物)。 "run" + "oob"
. 点号。分隔对象和方法。 DateTime.Hour
() 圆括号。将值进行分组。 (i+5)
() 圆括号。传递参数。 x=Add(i,5)
[] 中括号。访问数组或者集合的值。 name[3]
! 非。真/假取反。 if (!ready)
&&

||
逻辑与。

逻辑或。
if (ready && clear)

if (ready || clear)

转换数据类型

从一种数据类型转换到另一种数据类型,有时候是很有用的。

最常见的例子是将字符串输入转换为另一种类型,如整数或者日期。

一般规则下,都是将用户输入看做字符串处理,即使用户输入了数字。因此数值输入必须被转换成数字,然后才能将其用于计算。

下面列出了常用的转换方法:

方法 描述 实例
AsInt()

IsInt()
转换字符串为整数。 if (myString.IsInt())

{myInt=myString.AsInt();}
AsFloat()

IsFloat()
转换字符串为浮点数。 if (myString.IsFloat())

{myFloat=myString.AsFloat();}
AsDecimal()

IsDecimal()
转换字符串为十进制数。 if (myString.IsDecimal())

{myDec=myString.AsDecimal();}
AsDateTime()

IsDateTime()
转换字符串为 ASP.NET DateTime 类型。 myString="10/10/2012";

myDate=myString.AsDateTime();
AsBool()

IsBool()
转换字符串为布尔值。 myString="True";

myBool=myString.AsBool();
ToString() 转换任何数据类型为字符串。 myInt=1234;

myString=myInt.ToString();

For 循环

如果您需要重复执行相同的语句,您可以设定一个循环。

如果您知道要循环的次数,您可以使用 for 循环。这种类型的循环在向上计数或向下计数时特别有用:

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

For Each 循环

如果您使用的是集合或者数组,您会经常用到 for each 循环

集合是一组相似的对象,for each 循环可以遍历集合直到完成。

遍历 ASP.NET Request.ServerVariables 集合。

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

While 循环

while 循环是一个通用的循环。

while 循环以 while 关键字开始,后面紧跟着括号,您可以在括号里规定循环将持续多久,然后是重复执行的代码块。

while 循环通常会设定一个递增或者递减的变量用来计数。

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

数组

当您要存储多个相似变量但又不想为每个变量都创建一个独立的变量时,可以使用数组来存储:

@{
string[] members = {"Jani", "Hege", "Kai", "Jim"};
int i = Array.IndexOf(members, "Kai")+1;
int len = members.Length;
string x = members[2-1];
}
@foreach (var person in members)
{
<p>@person</p>
}

Switch 条件

switch 块可以用来测试一些单独的条件:

@{
var weekday=DateTime.Now.DayOfWeek;
var day=weekday.ToString();
var message="";
}
@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;
}

ASP.NET Razor - 标记的更多相关文章

  1. ASP.NET Razor——Razor 简介

    ASP.NET Razor - 标记 Razor 不是一种编程语言.它是服务器端的标记语言. 什么是 Razor? Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 ...

  2. Razor标记语言介绍

    什么是Razor?   Razor的中文意思是"剃刀",它不是编程语言,只是一种服务器段的标记语言,与PHP和ASP类似   Razor允许你向网页中嵌入基于服务器的代码(Visu ...

  3. ASP.NET Razor C# 和 VB 代码语法

    ylbtech-.NET: ASP.NET Razor  C# 和 VB 代码语法 Razor 不是一种编程语言.它是服务器端的标记语言. 1. C# 和 VB 代码语法返回顶部 Razor 同时支持 ...

  4. ASP.NET Razor 简介

    ylbtech-.NET: ASP.NET Razor 简介 Razor 不是一种编程语言.它是服务器端的标记语言. 1. 什么是 Razor?返回顶部 Razor 是一种标记语法,可以让您将基于服务 ...

  5. ASP.NET Razor简介

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

  6. ASP.NET Razor 视图引擎编程参考

    ASP.NET Razor 视图引擎编程参考   转载请注明出处:http://surfsky.cnblogs.com Rasor 视图引擎    http://msdn.microsoft.com/ ...

  7. Razor - 标记简述

    详情请参考:http://www.runoob.com/aspnet/razor-intro.html 1.Razor 不是一种编程语言.它是服务器端的标记语言.基于服务器的代码(Visual Bas ...

  8. ASP.NET Razor——ASP.NET Razor - C#代码语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic). 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 ...

  9. ASP.NET Razor

    一.为什么要学习Razor? 可以让服务器代码(就是c#和vb)嵌入到网页中,也就是说这个页面中包含html代码和C#(vb)代码.基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容.当 ...

随机推荐

  1. 彻底卸载Xubuntu Kubuntu

    卸载Xubuntu -linux-gnu blueman brltty brltty-x11 catfish cheese-common dbus-user-session dconf-cli deb ...

  2. java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全

    前言   在参考互联网大厂的登录.订单.提现这类对安全性操作要求较高的场景操作时发现,传输的都是密文.而为了目前项目安全,我自己负责的项目也需要这方面的技术.由于,我当前的项目是使用了前后端分离技术, ...

  3. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  4. Oarcle之单行函数(上)

    dual 是一个虚表,为了满足sql句式而设置这么一个表   单行函数 字符函数 concat 拼接两个字符串 select concat (concat(ename,‘的职位是’),job) fro ...

  5. 安卓 ToolBar 颜色样式设置

    设置Toolbar弹出菜单的字体颜色和背景颜色,包括三个点菜单颜色和返回图标的颜色. 布局文件xml <LinearLayout xmlns:android="http://schem ...

  6. 关于Axure RP软件的介绍——软件工程实践第二次个人作业

    关于Axure RP软件的介绍——软件工程实践第二次个人作业 Axure RP是一个非常专业的快速原型设计的一个工具,客户提出需求,然后根据需求定义和规格.设计功能和界面的专家能够快速创建应用软件或W ...

  7. "做中学"之“极客时间”课程学习指导

    目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时 ...

  8. autoit脚本-从基本的函数用法开始

    适配浏览器:目前了解的有ie浏览器 MsgBox 显示可选提示超时的消息框 _ArrayDisplay _arraydisplay($aArray)  ;$aArra一般为数组,方法用于展示表格展示数 ...

  9. Educational Codeforces Round 48 (Rated for Div. 2)

    http://codeforces.com/contest/1016 A. 没想到这个也会TLE,太粗心了 B. 暴力就好了,多情况讨论又出错... 思路跟我一样的解法   为什么我做了那么多讨论,原 ...

  10. 当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置

    场景重现 Windows 10 操作系统 (64-bit) 已经安装 .NET Core SDKs 如下: C:\Users\taadis>dotnet --list-sdks 2.1.202 ...