- 2011-05-02 14:55
- 2011-05-02 15:04
和Webform引擎相似,Razor語法也允許讓一些服務器端的代碼嵌入到web頁面。客戶端的代碼主要是一些html和css,javascript等。當頁面中有服務器端需要解析的代碼時,這些Razor語法的代碼會動態的被編譯成HTML標記,並返回到客戶端。
Web form引擎的文件必須是aspx或者ascx后綴的,Razor的文件時cshtml或者是vbhtml后綴。服務器端是通過文件后綴來決定當前的文件是否使用了Razor語法。
Razor也是在Asp.net基礎上的一種新的語言,它和asp.net以及.net framework平台的關系如下:

所以如果你的網站現在使用的是Asp.net那么你就可以現在開始不適用.aspx和ascx頁面而使用.cshtml或者vbhtml頁面,我只知道在asp.net mvc中只要把對應的試圖引擎給注冊下酒行了。 對於傳統的asp.net網站就不大了解如何同時使用幾個試圖引擎了。
1.更加簡潔的讓text,html和代碼集合到一起
例子:

上面是使用Razor引擎的代碼,如果使用webform試圖引擎,你需要使用<% %>標記來把代碼和html集合到一起,但從把代碼和html集合到一起來看,@符合也就是比<%%>少寫一個標記,但是如果代碼行數多了以及對於if else的判斷使用的花括號都需要<%%>標記,你就會感覺的Razor真的是簡潔了不少。
運行效果:

2.@: 的使用和<text>標記的使用:
@: 用來輸出文本或者是那些未能找到匹配的Html標記的標記符。如果是單行使用@:,但是對於多行代碼顯示,就可以使用text標簽來替代@:了。
例子:

這個我運行的結果好像和預期的不一樣。。。。
使用<text>標記也是一樣的效果,難道是RTM版本把這個功能去掉了??、???
3.變量賦值時換行的問題。

你可以一行內為變量賦值,或者是在其它行開始時為變量賦值,或者是使用轉義符號@,上面例子的1,2,3種情況是正確的賦值,但是方括號包住的會直接報錯。
4.變量的類型:

Razor中的數據類型和C#中的差不多,很多C#的變量類型以及聲明變量的方式,都可以在Razor中看到。。。。。比如上面的stirng name=”Joe”; int count=5;等。
- 2011-05-02 15:06
Raozr中文件目錄的獲取:
和webform引擎相似,例子:

運行效果:

5.條件判斷和循環的使用
條件判斷有if, switch等,
先看使用if條件判斷的例子:

如果是在C#中,上面的if(showToday)后面不需要是用大括號也可以正常顯示,但是在Razor中,如果不加這個大括號,你就杯具了。
使用if…else的例子:

上面的例子中我們使用了if---else,這個和C#中的相同,如果你仔細看發現下面有個@:或者是我注釋掉的<text>標記,它們的作用是在Razor代碼中能夠輸出文本。而不需要輸出html。
switch條件判斷例子:

運行結果:

循環就不用說了for,foreach,以及while。
for循環:


foreach的使用:

- 2011-05-02 15:08