強大的razor引擎
一、razor基礎簡介
razor採用了cshtml字尾的檔名,截圖如下:
a、 版面布局
從圖上看到,新的檢視引擎已經沒有了site.master這種masterpage了,取而代之的是_layout.cshtml和_viewstart.cshtml。
_layout.cshtml等同於masterpage;如下圖所示:
這個_layout.cshtml檔案中已沒有了masterpage中的標籤語句了,取而代之的是
@renderbody():呈現子頁的主體內容
@rendersection():呈現特別的節部分。
helperresult rendersection(string name, bool required = true);
required預設為true必須覆寫,設為false則為可選覆寫;
注意的是:該函式在rc版中引數有所改變,引數中optional改為required,據說和vb的關鍵字衝突
下圖則為我在子頁的頁尾部分覆寫,在子頁實現時,使用@section 自定義節名格式。
如果我們想在父頁裡寫乙個預設實現節,在子頁作為可選實現該怎麼做呢?
這個在masterpage是直接支援的,但在razor裡就要稍顯複雜些,個人覺得這種寫法還可以改進下;
如下圖所示,我在父頁寫了乙個預設的頁尾實現,如果子頁有實現則使用子頁實現,沒有就用預設實現。
這裡要先通過bool issectiondefined(string name)函式判斷是否有子頁實現,有則呼叫子頁實現。
_viewstart.cshtml:該頁面可以理解為其它view的基類。它預設的**就3行如下所示:
在該頁面裡定義了其它view的預設masterpage是「~/views/shared/_layout.cshtml」;
當然在這裡還可以定義一些公用的函式及變數,以供其它頁面可以直接呼叫。
Razor模板引擎
注 visual studio2010及以下是不支援razor的 如果在使用vs2015等更高版本的時候出現 file not found exception cannot load system.web.razor.dll version 2.0.0 這樣的錯誤,請換用下面附件中的程式集把舊的ra...
Razor 模板引擎的使用
安裝razor的模板引擎,通過vs的 擴充套件管理器 查詢 razorengine 並安裝。安裝的dll包括 razorengine.dll 和 system.web.razor.dll 主要使用razorengine.razor 類下的靜態方法parse string razortemplate,...
理解模板引擎Razor 的原理
razor是asp.net mvc 3中新加入的技術,以作為aspx引擎的乙個新的替代項。簡潔的語法與.net framework 結合,廣泛應用於asp.net mvc 專案。razor pad是乙個編輯razor指令碼的工具,脫離於asp.net 和visual studio。微軟已經有一套模板...