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

ASP.NET Razor

程序员文章站 2022-09-30 20:59:49
一、为什么要学习Razor? 可以让服务器代码(就是c#和vb)嵌入到网页中,也就是说这个页面中包含html代码和C#(vb)代码。基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。通过服务器的运行,代码 ......

一、为什么要学习razor?

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

二、razor代码的语法

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

下面请看一个案例:

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

ASP.NET Razor

(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 = "李白";
        }

转换数据类型

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

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

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

ASP.NET Razor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<!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>