拋棄NVelocity,來玩玩Razor

2021-07-29 08:28:07 字數 3296 閱讀 3298

只能放些靜態頁面上面,外加jsonp來實現互動,我們知道.net中有很多模板引擎,但都不是原裝的,所以基本都沒有**提示,

用起來比較不爽,自razor出來後,私活中也拋棄了原先使用的nvelocity,而採用原裝的razor。

好了,我們先看看怎麼玩,首先我們去codeplex上下兩個dll。

我想razor語法,大家都已經滾瓜爛熟了,不過我快一年都沒接觸mvc了,也忘了差不多了,就簡單介紹一些吧~~~

一般來說,只要razor支援四樣特性,80%的功能都可以完成。

一:簡單的佔位符替換

由於太簡單了,就不花力氣從cshtml檔案中讀取了,而用字串替代。

怎麼樣,簡單的佔位符替換是不是很簡單,比那些,是不是更有語意化一些~

二:能實現的if,foreach等流程控制語句

先看看在模板中怎麼玩,最最關鍵的是有**提示,完完全全是我們熟悉的c#語法

1

doctype html

>23

<

html

lang

="en"

>45

<

head

>

6<

meta

charset

="utf-8"

/>

7@* 看看if語句怎麼玩 *@

8@if (datetime.now.hour == 23)912

else

1316

head

>

1718

<

body

>

19<

ul>

20@* 看看foreach語句怎麼玩 *@

21@foreach (var item in @model.studentlist)

2225

ul>

26body

>

27html

>

再看看後台c#**

1

class

program2,

12new student(),

13new student(),

14};

1516

var result = razor.parse(index, new );

1718}19

}2021public

class

student

2224 }

然後我們看看生成的文字,嘿嘿,是不是找到了寫mvc的感覺呢

三:新增自定義方法

在靜態化中,新增自定義方法也是非常實用的一項功能,razor實現起來也很簡單,我們可以重寫原有的templatebase類

來實現我們自定義的類,然後加上一些我們自定義的方法即可~

1

///2

///自定義razor原有模板,增加一些自定義的全域性方法

3///

4///

5public

abstract

class mycustomtemplatebase: templatebase6

11 }

這裡實現個簡單的「大寫化」方法,很簡單,然後使用  razor.settemplatebase(typeof(mycustomtemplatebase<>))進行設定。

1

static

void main(string

args)2);

11 }

再看看我們前端的index.cshtml中定義

1

doctype html

>23

<

html

lang

="en"

>45

<

head

>

6<

meta

charset

="utf-8"

/>

7<

title

>hello

title

>

8head

>910

<

body

>

11@myupper(model.name)

12body

>

13html

>

大功搞成,看看效果。

四:檔案巢狀

我們知道頁面一般都有公共的東西,比如頭部,尾部,導航等等,只可惜的是在razor中是不支援layout的,而是使用razor

給我們提供的include加上後台的compile預編譯方法。

第一步:定義乙個header.cshtml模板檔案

第二步:定義個index.cshtml模板檔案,然後在heder區域中用include定義起來,第乙個引數header是給header.cshtml

的命名,model是作為header.cshtml中的實體引數。

第三步: 分別讀取header.cshtml和index.cshtml中的內容,將前者編譯成乙個變數header。

好了,如果掌握了上面四樣基本功能,現在你也可以用razor實戰到自己的靜態化中去啦o(∩_∩)o

拋棄NVelocity,來玩玩Razor

只能放些靜態頁面上面,外加jsonp來實現互動,我們知道.net中有很多模板引擎,但都不是原裝的,所以基本都沒有 提示,用起來比較不爽,自razor出來後,私活中也拋棄了原先使用的nvelocity,而採用原裝的razor。好了,我們先看看怎麼玩,首先我們去codeplex上下兩個dll。我想raz...

來玩玩畫直線

哦啦啦,俺又來啦,幾個月不見是不是很想俺吶,挖哈哈 俺這個文章純屬拋磚引玉 希望各位高手不要丟板磚啦。俺們寫程式也就是乙個樂趣 比不了你們這些的牛x人啦 這次俺們來秀下直線方程 小意思 見笑啦,俺們用得最多的就是.net了哈 所以依舊在.net平台上做測試 好正題 先把一次函式搬出來哈 直線的方程 ...

今天心情不好,特地開通個blog來玩玩

今天資料庫考試了,主要是oracle中查詢的應用。原本80分鐘的題目結果用了5個小時也沒有做出來,10道題只完成了一半。唉,真是沒臉見人了。真是幸運,如果不考試還不知道原來自己根本沒有掌握好學到的知識,只要通過有難度的練習才能提高自己的水平。這幾天在學習mr.persister持久層框架。說起mr....