razor是基於framewor4以上寫的乙個開源專案:
razor是包含了模板引擎和動態編譯兩部分。本部分就簡單記錄了模板引擎的一些語法,之後用razor做乙個**生成器,就使用razor的語法來。
razor的發布是和mvc一起的,作為mvc的檢視模板引擎。
razor檔案型別
razor可以在vb.net和c#中使用。分別對應了兩種檔案型別,.vbhtml和.cshtml
razor的識別符號
@字元被定義為razor伺服器**塊的識別符號,後面的表示是伺服器**了。web form中使用中寫伺服器**乙個道理。在vs工具裡面提供了**著色和智慧型感應的功能。如下面**:
@razor的作用域@username
@datetime.now.tostring("yyyy-mm-hh")
在上面乙個例子中都已經使用到了大括號{},不錯,大括號裡面的就是表示作用域的範圍,用形如@來寫一段**塊。
@在作用域(**塊)中輸出也是用@符號的。
用razor和html**混合編寫
在razor中寫html**和html**中寫razor語句都是可以的,並且還有智慧型提示。
a.在作用域內如果是以html標籤開始則視為文字輸出
b.如果要輸出@,則使用@@
c.如果要輸出非html標籤和非razor語句的**,則用@:,他的作用是相當於在處於html下面編寫一樣了,如在@:後面可以加上@就是表示razor語句的變數
如:
@razor作用塊注釋
razor作用塊裡面本身就是伺服器**了,因此可使用伺服器**的注釋,注釋有//和/**/分別是單行注釋和多行注釋。
另外razor注釋還可以使用自身特有的@* 注釋的內容 *@,支援單行和多行的。
@razor型別轉換
as系列擴充套件方法和is系列擴充套件方法
asint(), isint()
asbool(),isbool()
asfloat(),isfloat()
asdecimal(),isdecimal()
asdatetime(),isdatetime()
tostring()
@razor其它i = @i.asint()
@href("~/")//表示**的根目錄
@html.raw(module.content) 輸出html,如:@html.raw('紅字'),就會顯示出紅色的」紅字「,不用的話會直接顯示這段html字串(紅色文字)
在實際中,比如乙個**,整過框架是一樣的,而有的地方是很多相同的版塊。因此我們需要復用。
布局(layout)
layout方式布局就是相當於乙個模板一樣的,我們在它位址地方去新增**。相當於定義好了框架,作為乙個母版頁的,在它下面的頁面需要修改不同**的地方使用@renderbody()方法
@renderbody()
@頁面(page)this is a layout test
page是當需要在乙個頁面中,輸出另外乙個razor檔案的內容時候用到,比如頭部或者尾部這些公共的內容時候需要用到。輸出就使用 @renderpage()方法
如:a頁面中也要把b頁面的內容輸出
a頁面:
@renderpage("/b.cshtml")b頁面的**如下:
這是乙個子頁面section區域
section是定義在layou的中使用的。在layout的頁面中用。在要layout的父頁面中使用@rendersection("section名稱 ")
定義:
@rendersection("submenu")在它的子頁面中使用@renderbody()
@section submenu如果在子頁面中沒有去實現了submenu了,則會丟擲異常。我們可以它的過載@rendersection("submenu", false)
@if (issectiondefined("submenu"))helperelse
helper就是可以定義可重複使用的幫助器方法,不僅可以在同乙個頁面不同地方使用,還可以在不同的頁面使用。
如在cshtml中那麼寫:
@helper sum(int a,int b)我們通常會把一類helper放在乙個單獨的cshtml檔案中,而檔名就相當於乙個類名。@@helper的語法
2+3=@sum(2,3)
5+9=@sum(5,9)
我把sum放在helpmath.cshtml檔案中,則我們在那上面cshtml中的使用方法是:
[email protected](2,3)另外,系統還為我們提供了一些列的helper,用來簡化html的書寫。這些helper放在@html中,我們可以方便的使用:[email protected](5,9)
@html.textbox("txtname")
Razor語法大全
razor是基於framewor4以上寫的乙個開源專案 razor是包含了模板引擎和動態編譯兩部分。本部分就簡單記錄了模板引擎的一些語法,之後用razor做乙個 生成器,就使用razor的語法來。razor的發布是和mvc一起的,作為mvc的檢視模板引擎。razor可以在vb.net和c 中使用。分...
Razor語法示例
本章通過示例來說明常見用途下的razor語法。1.razor中的核心轉換符號是 這個單一字元用做標記 的轉換字元,有時也反過來用作 標記的轉換字元。這裡共有兩種基本型別的轉換 表示式和 塊。求出表示式的值,然後將值寫入到響應中。rootnamespace.models 在這個示例中想要的輸出結果是 ...
Razor基本語法
razor引擎的核心是識別 符號及尖括號 1 2 之所以說是 尖括號 而非 元素標籤 見下面的例子。for int i 0 i 5 i 語法一 表示式 1 0 1等於0 1不等於0 語法二 語句塊 else 語法三 1 後面直接跟變數輸出變數的內容 2 後面直接跟有返回值的方法輸出方法的返回值 3 ...