ASP.NET Razor

一、为什么要学习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>

 

posted @ 2019-02-18 13:22  森林绿翡翠  阅读(810)  评论(0编辑  收藏  举报