Razor基础语法简介

Original 2017-01-11 14:29:01 595
abstract:Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtmlRazor基础语法:1、代码注释:      多行注释: @*注释信息*@     单行注释: // 注释 1、代码体{...}[html] view plain copy @{  var x=100;&

Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml
Razor基础语法:
1、代码注释:
      多行注释: @*注释信息*@
     单行注释: // 注释

1、代码体{...}

[html] view plain copy
@{  var x=100;  
    var y=100;  
    string str="this is string";  
}

在代码体中,没一行都需要用";"结束,代码区中,字母区分大小写。字符类型常量必须用""括起来,


2、 由于asp.net引擎会检解析查每个已@开头的代码,除非@前包括非空白字符;如:<div>test@razor</div> 
这样输出的信息还是test@razor,这不会进行解析,页面输出@符合,可以用HTML中的ASCII编码&#64。


3、 在Razor中使用局部变量,进行上下文调用:

[html] view plain copy
@{  
var message="现在时间为:";  
var time=DateTime.Now;  
var outMessage=message+time;  
}  
<div>@outMessage </div>


页面输出为:现在时间为:2011/12/14 20:26:13; 


4、字符拼接输出

[html] view plain copy

@{var cout=100;}  
<p>这是第 @count 个进球 </p>

页面输出:这是第 100 个进球

如果页面要输出:这是第100个进球
则调用方式则为:<p>这是第@{@count}个进球</p>,
如果直接用<p>这是第@count个进球</p>,页面将会直接输出:这是第@count个进球

如果输出的是变量的方法名:
<p>这是第@count.ToString()个进球</p>,则可以不用@{}标志

5、 在@{...}代码体中输出文字,需要用到@:,如下所示:

[html] view plain copy

@{  
     var name="张三";  
     @:你好:  
     @:@name          
 }

页面输出:你好:张三

6、 逻辑代码处理

[html] view plain copy

@{  
    if(true)  
    {  
        // do something;  
    }  
    else  
    {  
        // do something;  
    }  
}


7、 在@{...}代码体内部使用html标记

[html] view plain copy

@{  
        <div>this is <span>test</span></div>  
 }

 页面输出:this is test
 要进行多行输出时可用:

[html] view plain copy

@{  
       <text>  
       this first,  
       this secend    
       </text>         
     }

  页面输出:this first, this secend  
8、 在@{...}内部使用注释

[html] view plain copy

@{  
    // 单行注释  
    var mesage = "Now Time:";  
    @*   
        当前时间  
        输出当前时间  
    *@   
      
    /*  
     *  使用C#中的  
     *  注释  
     */  
    var time = DateTime.Now;  
  
<!-- HTML注释-->  
    var outMessage = mesage + time;  
 }

9、 数据类型转换      

[html] view plain copy

   AsInt(), IsInt()  

 AsBool(),IsBool()  

 AsFloat(),IsFloat()  

 AsDecimal(),IsDecimal()  

 AsDateTime(),IsDateTime()  

 ToString()  

  

 @{  
       var count = "100";  
   }

      

 <p>count:@count.AsInt()</p>  
输出:count:100  
   <p>@count.IsInt()</p>  
输出:True  
  
   如果  
@{  
             var count = "test";  
 }  
     
   <p>count:@count.AsInt()</p>  
输出:count:0  
   <p>@count.IsInt()</p>  
输出:False


即:AsInt() 如果转换不成功直接为0,IsInt返回Bool值,其他类似

10、循环使用

[html] view plain copy

@{  
        /* for循环使用 */  
        for(int k=1;k<5;k++)  
        {  
            @:第 @k 个;  
        }  
  
  
        @*页面输出:第 1 个; 第 2 个; 第 3 个; 第 4 个; *@  
          
        // foreach 使用  
        var list =new List<string> { "one", "two", "three", "four" };  
        foreach(var str in list)  
        {  
            @:@str;  
        }  
        @*页面输出:one; two; three; four; *@  
          
        var flag=1;  
        while(flag<5)  
        {   
           @:第@{@flag}个;   
           flag++;  
        }  
         @*页面输出:第1个; 第2个; 第3个; 第4个; *@  
}


Release Notes

Popular Entries