搜索 | 会员  
Razor基础语法简介
来源: 博客园   作者:郑文亮  日期:2016-2-15  类别:编程语言  主题:.NET  编辑:Grace
Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml

Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml

Razor基础语法:

1、代码注释:

      多行注释: @*注释信息*@

     单行注释: // 注释

1、代码体{...}

 

@{  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中使用局部变量,进行上下文调用:

 

@{  

var message="现在时间为:";  

var time=DateTime.Now;  

var outMessage=message+time;  

}  

<div>@outMessage </div>   


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

 

4、字符拼接输出

@{var cout=100;}  

<p>这是第 @count 个进球 </p>  

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


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

则调用方式则为:<p>这是第@{@count}个进球</p>,

如果直接用<p>这是第@count个进球</p>,页面将会直接输出:这是第@count个进球


如果输出的是变量的方法名:

<p>这是第@count.ToString()个进球</p>,则可以不用@{}标志


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

@{  

     var name="张三";  

     @:你好:  

     @:@name          

 }  

页面输出:你好:张三


6、 逻辑代码处理

 

@{  

    if(true)  

    {  

        // do something;  

    }  

    else  

    {  

        // do something;  

    }  

}  



 

 

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


@{  

        <div>this is <span>test</span></div>  

 }  


 页面输出:this is test

 要进行多行输出时可用:

@{  

       <text>  

       this first,  

       this secend    

       </text>         

     }  

  页面输出:this first, this secend 

 

8、 在@{...}内部使用注释

@{  

    // 单行注释  

    var mesage = "Now Time:";  

    @*   

        当前时间  

        输出当前时间  

    *@   

      

    /*  

     *  使用C#中的  

     *  注释  

     */  

    var time = DateTime.Now;  

  

<!-- HTML注释-->  

    var outMessage = mesage + time;  

 }  

 

9、 数据类型转换

      

   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、循环使用

@{  

        /* 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个; *@  

}  


德仔网尊重行业规范,每篇文章都注明有明确的作者和来源;德仔网的原创文章,请转载时务必注明文章作者和来源:德仔网;
头条那些事
大家在关注
我们的推荐
也许感兴趣的
干货
了解一下吧