欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-17 09:29:34
c# 的主要 razor 语法规则 razor 代码封装于 @{ ... } 中 行内表达式(变量和函数)以 @ 开头 代码语句以分号结尾 字符串由引号包围 c# 代码对大小写敏感 c# 文件的扩...

c# 的主要 razor 语法规则

  • razor 代码封装于 @{ ... } 中
  • 行内表达式(变量和函数)以 @ 开头
  • 代码语句以分号结尾
  • 字符串由引号包围
  • c# 代码对大小写敏感
  • c# 文件的扩展名是 .cshtml

c# 实例

<!-- 单行代码块 -->
@{ var mymessage =	"hello world"; }

<!-- 行内表达式或变量 -->
<p>the value of mymessage is: @mymessage</p> 

<!-- 多行语句代码块 -->
@{
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>

运行实例


vb 的主要 razor 语法规则

  • razor 代码块被包围在 @code ... end code 中
  • 行内表达式(变量和函数)以 @ 开头
  • 以 dim 关键词来声明变量
  • 字符串由引号包围
  • vb 对大小写不敏感
  • vb 文件的扩展名是 .vbhtml

实例

<!-- 单行代码块 -->
@code dim mymessage = "hello world" end code
 
<!-- 行内表达式或变量 -->
<p>the value of mymessage is: @mymessage</p> 
 
<!-- 多行语句代码块 -->
@code
dim greeting = "welcome to our site!" 
dim weekday = datetime.now.dayofweek 
dim greetingmessage = greeting & " here in huston it is: " & weekday
end code 

<p>the greeting is: @greetingmessage</p>

运行实例


如何工作?

razor 是一种简单的语法,用于在网页中嵌入服务器端代码。

razor 语法基于 asp.net 框架,该框架是微软的 .net 框架特别为 web 应用而设计的组成部分。

razor 语法赋予您所有 asp.net 的能力,但是使用了简化过的语法,如果您是初学者,则更容易学习,如果您是专家,则更有利于提高生产力。

razor 网页可被描述为带有两种内容的 html 页面:html 内容和 razor 代码。

当服务器读取这种页面后,在将 html 页面发送到之前,会首先运行 razor 代码。这些在服务器上执行的代码能够完成浏览器中无法完成的任务,比如访问服务器。服务器代码能够在页面被发送到浏览器之前创建动态的 html 内容。从浏览器来看的话,由服务器代码生成的 html 与静态 html 内容没有区别。

使用 razor 语法的 asp.net 网页拥有特殊的文件扩展名 cshtml(使用 c# 的 razor 语法)或者 vbhtml(使用 vb 的 razor)。


与对象打交道

服务器代码常常涉及对象。

"date" 对象是典型的 asp.net 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。

对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。

对象也可以有描述其特点的属性。数据库记录可以有 firstname 和 lastname 属性。

asp.net date 对象拥有 now 属性(写为 date.now),now 属性有 day 属性(写为 date.now.day)。下面的例子展示如何访问 date 对象的某些属性:

实例

<table border="1">
<tr>
<th width="100px">name</th>
<td width="100px">value</td>
</tr>
<tr>
<td>day</td><td>@datetime.now.day</td>
</tr>
<tr>
<td>hour</td><td>@datetime.now.hour</td>
</tr>
<tr>
<td>minute</td><td>@datetime.now.minute</td>
</tr>
<tr>
<td>second</td><td>@datetime.now.second</td>
</tr>
</td>
</table>

运行实例


if 和 else 条件

动态网页的重要特性是基于条件来确定执行的动作。

实现这一点的常用方法是使用 if ... else 语句:

实例

@{
var txt = "";
if(datetime.now.hour > 12)
  {txt = "good evening";}
else
  {txt = "good morning";}
}
<html>
<body>
<p>the message is @txt</p>
</body>
</html>

运行实例


读取用户输入

动态网页的另一个重要特性是读取用户的输入。

由 request[] 函数读取输入,并由 ispost 条件进行测试:

实例

@{
var totalmessage = "";
if(ispost)
    {
    var num1 = request["text1"];
    var num2 = request["text2"];
    var total = num1.asint() + num2.asint();
    totalmessage = "total = " + total;
    }
}
<html>
<body style="background-color: beige; font-family: verdana, arial;">
<form action="" method="post">
<p><label for="text1">first number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">second number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" add " /></p>
</form>
<p>@totalmessage</p>
</body>
</html>

运行实例