Razor的出現,使頁面看起更加簡潔,Razor的頁面字尾為:.cshtml
Razor基礎文法:
1、代碼注釋:
多行注釋: @*注釋資訊*@
單行注釋: // 注釋
1、代碼體{...}
[html] view plaincopy
@{ 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
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";
輸出:count:0
輸出: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個; *@