ASP.NET Razor

匿名 (未验证) 提交于 2019-12-02 22:06:11

一、为什么要学习Razor?

可以让服务器代码(就是c#和vb)嵌入到网页中,也就是说这个页面中包含html代码和C#(vb)代码。基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。通过服务器的运行,代码能执行复杂的任务,比如进入数据库。

二、Razor代码的语法

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

下面请看一个案例:

(1)创建一个以.cshtml结尾的页面:

(2)然后代码

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title> </head> <body>     @{         var message = "李白是最帅的,没有之一";                  }     <p>对于他的粉丝来说:@message</p>     @{         var name = "李白";         string techno = "青莲剑歌";         string action = name + "在面对十万敌人时,毫无惧色,使出了:" + techno + "技能,横扫八方";         }     <p>@action</p> </body> </html>

使用对象

比如说内置对象Date:

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title> </head> <body>      <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>     </table> </body> </html>

变量

变量是用来存储数据的。一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。一个变量可以是一个指定的类型,表示它所存储的数据类型。string 变量存储字符串值("Welcome to RUNOOB.COM"),integer 变量存储数字值(103),date 变量存储日期值,等等。变量使用 var 关键字声明,或通过使用类型(如果您想声明类型)声明,但是 ASP.NET 通常能自动确定数据类型。

  @{         var message = "李白是最帅的,没有之一";         string name = "李白";         }

转换数据类型

从一种数据类型转换到另一种数据类型,有时候是很有用的。最常见的例子是将字符串输入转换为另一种类型,如整数或者日期。

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

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

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title> </head> <body style="background-color: beige; font-family: Verdana, Arial;"> @{ var totalMessage = ""; if(IsPost)     {     var num1 = Request["text1"];     var num2 = Request["text2"];    //将string类型转换成为int类型     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>

循环

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title> </head> <body>     <!--         For 循环          如果需要重复运行相同的语句,您可以编写一个循环。          如果您能够确定循环的次数,则可以使用 for 循环。这种循环类型是专门为计数或反向计数设计的:          -->     @for(int i = 0;i< 20;i++)     {  <p>Line :@i</p>}      <!--         For Each 循环          如果您需要处理集合或数组,则通常要用到 for each 循环。          集合是一组相似的对象,for each 循环允许您在每个项目上执行一次任务。for each 循环会遍历集合直到完成为止。          下面的例子遍历 ASP.NET Request.ServerVariables 集合。         -->     <ul>               @foreach(var x in Request.ServerVariables)         {             <p>@x</p>         }       </ul>     <!--         while 是一种通用的循环。          while 循环以关键词 while 开始,后面跟括号,其中定义循环持续的长度,然后是要循环的代码块。          while 循环通常会对用于计数的变量进行增减。          在下面的例子中,循环每运行一次,+= 运算符就向变量 i 增加 1。                  -->      @{         var j = 0;         while (j < 5)             {             j += 1;             <p>Line #@j</p>             }  }  </body> </html>

循环综合实例

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title> </head> <body>      @{ string[] members = {"Jani", "Hege", "Kai", "Jim"}; int i = Array.IndexOf(members, "Kai")+1; int len = members.Length; string x = members[2-1]; } <html> <body> <h3>Members</h3> @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>   </body> </html>

文章来源: ASP.NET Razor
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!