ASP.NET MVC 3 Razor基础语法
Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml
Razor基础语法:
1、代码注释:
多行注释: @*注释信息*@
单行注释: // 注释
2、 由于asp.net引擎会检解析查每个已@开头的代码,除非@前包括非空白字符;如:<div>test@razor</div>
这样输出的信息还是test@razor,这不会进行解析,页面输出@符合,可以用HTML中的ASCII编码@。
页面输出为:现在时间为:2011/12/14 20:26:13;
页面输出:这是第 100 个进球
如果页面要输出:这是第100个进球
则调用方式则为:<p>这是第@{@count}个进球</p>,
如果直接用<p>这是第@count个进球</p>,页面将会直接输出:这是第@count个进球
如果输出的是变量的方法名:
<p>这是第@count.ToString()个进球</p>,则可以不用@{}标志
5、 在@{...}代码体中输出文字,需要用到@:,如下所示:
页面输出:你好:张三
页面输出:this is test
要进行多行输出时可用:
页面输出:this first, this secend
8、 在@{...}内部使用注释
即:AsInt() 如果转换不成功直接为0,IsInt返回Bool值,其他类似
10、循环使用
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编码@。
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个进球
则调用方式则为:<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>
- }
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个; *@
- }