強大的Razor引擎自製模板頁注意render

2021-08-22 08:36:05 字數 1022 閱讀 3808

強大的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。微軟已經有一套模板...