日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Razor语法大全

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Razor语法大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:?http://www.cnblogs.com/dengxinglin/p/3352078.html


Razor是基于framewor4以上寫的一個開源項目:https://github.com/Antaris/RazorEngine/

Razor是包含了模板引擎和動態編譯兩部分。本部分就簡單記錄了模板引擎的一些語法,之后用Razor做一個代碼生成器,就使用Razor的語法來。

Razor的發布是和MVC一起的,作為MVC的視圖模板引擎。

?

Razor文件類型

? ?Razor可以在vb.net和C#中使用。分別對應了兩種文件類型,.vbhtml和.cshtml?

?

Razor的標識符

? ??@字符被定義為Razor服務器代碼塊的標識符,后面的表示是服務器代碼了。web form中使用<%%>中寫服務器代碼一個道理。在vs工具里面提供了代碼著色和智能感應的功能。如下面代碼:

@{string userName= "鄧星林";}<span>@userName</span><span>@DateTime.Now.ToString("yyyy-MM-hh")</span>

?

Razor的作用域

? ? ?在上面一個例子中都已經使用到了大括號{},不錯,大括號里面的就是表示作用域的范圍,用形如@{code}來寫一段代碼塊。

@{string userName= "鄧星林";@userName }

在作用域(代碼塊)中輸出也是用@符號的。

?

用Razor和html代碼混合編寫

? ?在Razor中寫html代碼和html代碼中寫Razor語句都是可以的,并且還有智能提示。

? ?a.在作用域內如果是以html標簽開始則視為文本輸出

? ?b.如果要輸出@,則使用@@

? ?c.如果要輸出非html標簽和非Razor語句的代碼,則用@:,他的作用是相當于在處于html下面編寫一樣了,如在@:后面可以加上@就是表示Razor語句的變量

?如:

@{var str = "abc";////下面會輸出:this is a mail:dxl0321@qq.com, this is var: abc,this is mail@str,this is @;@: this is a mail:dxl0321@qq.com, this is var: @str,this is mail@str,this is @@;//下面輸出abc @str}

Razor作用塊注釋

? ? razor作用塊里面本身就是服務器代碼了,因此可使用服務器代碼的注釋,注釋有//和/**/分別是單行注釋和多行注釋。

? ?另外razor注釋還可以使用自身特有的@* 注釋的內容 *@,支持單行和多行的。

@{@*多行注釋多行注釋*@var i = 10; @* asdfasf *@ }

Razor類型轉換

? ? ? ? ?As系列擴展方法和Is系列擴展方法

? ? ??? ? AsInt(), IsInt()

  ? ? AsBool(),IsBool()

? ?   AsFloat(),IsFloat()

  ?  AsDecimal(),IsDecimal()

  ? ? AsDateTime(),IsDateTime()

  ? ToString()

@{var i = “10”; } <p> i = @i.AsInt() </p> <!-- 輸出 i = 10 -->

?

razor其它

??@Href("~/")//表示網站的根目錄

??@Html.Raw(Module.Content) ?輸出HTML,如:@Html.Raw('<font color='red'>紅字</font>'),就會顯示出紅色的”紅字“,不用的話會直接顯示這段html字符串(<font color='red'>紅色文字</font>)

?

?

?

在實際中,比如一個網站,整過框架是一樣的,而有的地方是很多相同的版塊。因此我們需要復用。

?

布局(Layout)

? ?layout方式布局就是相當于一個模板一樣的,我們在它地址地方去添加代碼。相當于定義好了框架,作為一個母版頁的,在它下面的頁面需要修改不同代碼的地方使用@RenderBody()方法

<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"/><title>我的網站 - @Page.Title</title></head><body>@RenderBody()</body> </html> @{Layout = "/LayoutPage.cshtml";Page.Title = "測試頁面哦"; }<p>This is a layout test</p>

?

頁面(Page)

?page是當需要在一個頁面中,輸出另外一個razor文件的內容時候用到,比如頭部或者尾部這些公共的內容時候需要用到。輸出就使用?@RenderPage()方法

如:A頁面中也要把B頁面的內容輸出

A頁面:

<p>@RenderPage("/b.cshtml") </p>

b頁面的代碼如下:

<font color="red">這是一個子頁面</font>

?

Section區域

? ??Section是定義在Layou的中使用的。在Layout的頁面中用。在要Layout的父頁面中使用@RenderSection("Section名稱?")

定義:

<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"/><title>我的網站 - @Page.Title</title></head><body>?@RenderSection("SubMenu")@RenderBody()</body> </html>

在它的子頁面中使用

@section SubMenu{Hello This is a section implement in About View.}

?如果在子頁面中沒有去實現了SubMenu了,則會拋出異常。我們可以它的重載@RenderSection("SubMenu", false)

@if (IsSectionDefined("SubMenu")){@RenderSection("SubMenu", false)}else{<p>SubMenu Section is not defined!</p>}

?

?Helper

? ?helper就是可以定義可重復使用的幫助器方法,不僅可以在同一個頁面不同地方使用,還可以在不同的頁面使用。

如在cshtml中那么寫:

@helper sum(int a,int b) { var result=a+b;@result } <div ><p>@@helper的語法</p> <p>2+3=@sum(2,3)</p> <p>5+9=@sum(5,9)</p> </div>

我們通常會把一類Helper放在一個單獨的cshtml文件中,而文件名就相當于一個類名。

我把sum放在HelpMath.cshtml文件中,則我們在那上面cshtml中的使用方法是:

<p>2+3=@HelpMath.sum(2,3)</p> <p>5+9=@HelpMath.sum(5,9)</p>

另外,系統還為我們提供了一些列的Helper,用來簡化Html的書寫。這些Helper放在@Html中,我們可以方便的使用:

<p>@Html.TextBox("txtName") </p>

?本文頁面來源地址:http://www.cnblogs.com/dengxinglin/p/3352078.html


總結

以上是生活随笔為你收集整理的Razor语法大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。