C#中Razor模板引擎簡(jiǎn)單使用
使用視圖引擎可以完成一些需要定制化內(nèi)容格式的問(wèn)題,比如郵件模板。
引用
install-package RazorEngine
使用
public class TestDemo { private string name; public int Age { get => age; set => age = value; } public string Name { get => name; set => name = value; } private int age; }
string template = @" @if(Model!=null){ foreach(var item in Model){ <text>姓名:@item.Name,年齡:@item.Age</text> } }else{ <text>沒(méi)有數(shù)據(jù)</text> } "; var data = new List<TestDemo>() { new TestDemo(){Name="張三",Age=10 }, new TestDemo(){Name="張四",Age=11 }, new TestDemo(){Name="馬武",Age=30 } }; var html= Razor.Parse(template, data); //輸出 //姓名:張三,年齡:10 //姓名:張四,年齡:11 //姓名:馬武,年齡:30 var html1 = Razor.Parse(template, null); //輸出 //沒(méi)有數(shù)據(jù)
補(bǔ)充:下面看下Razor模板引擎(C#版)語(yǔ)法
Razor模板引擎語(yǔ)法
1、簡(jiǎn)介:
Razor 是一種標(biāo)記語(yǔ)法,可以讓您將基于服務(wù)器的代碼(Visual Basic 和 C#)嵌入到網(wǎng)頁(yè)中。
基于服務(wù)器的代碼可以在網(wǎng)頁(yè)傳送給瀏覽器時(shí),創(chuàng)建動(dòng)態(tài) Web 內(nèi)容。當(dāng)一個(gè)網(wǎng)頁(yè)被請(qǐng)求時(shí),服務(wù)器在返回頁(yè)面給瀏覽器之前先執(zhí)行頁(yè)面中的基于服務(wù)器的代碼。通過(guò)服務(wù)器的運(yùn)行,代碼能執(zhí)行復(fù)雜的任務(wù),比如進(jìn)入數(shù)據(jù)庫(kù)。
Razor 是基于 ASP.NET 的,是為創(chuàng)建 Web 應(yīng)用程序而設(shè)計(jì)的。它具有傳統(tǒng) ASP.NET 的功能,但更容易使用并且更容易學(xué)習(xí)。
2、原理:
Razor 是一種將服務(wù)器代碼嵌入在網(wǎng)頁(yè)中的簡(jiǎn)單的編程語(yǔ)法。
Razor 語(yǔ)法是基于 ASP.NET 框架,專門用于創(chuàng)建 Web 應(yīng)用程序的部分 Microsoft.NET 框架。
Razor 語(yǔ)法支持所有 ASP.NET 的功能,但是使用的是一種簡(jiǎn)化語(yǔ)法,對(duì)初學(xué)者而言更容易學(xué)習(xí),對(duì)專家而言更有效率的。
Razor 網(wǎng)頁(yè)可以被描述成帶以下兩種類型內(nèi)容的 HTML 網(wǎng)頁(yè): HTML 內(nèi)容和 Razor 代碼。
當(dāng) 服務(wù)器讀取頁(yè)面時(shí),它首先運(yùn)行 Razor 代碼,然后再發(fā)送 HTML 頁(yè)面到瀏覽器。在服務(wù)器上執(zhí)行的代碼能夠執(zhí)行一些在瀏覽器上不能完成的任務(wù),比如,訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)。服務(wù)器代碼能創(chuàng)建動(dòng)態(tài)的 HTML 內(nèi)容,然后發(fā)送到瀏覽器。從瀏覽器上看,服務(wù)器代碼生成的 HTML 與靜態(tài)的 HTML 內(nèi)容沒(méi)有什么不同。
3、語(yǔ)法規(guī)則:
Razor 代碼塊包含在 @{ ... } 中 。 (和asp的<% %>相似),注意代碼塊中除了C#代碼,html也是允許的
內(nèi)聯(lián)表達(dá)式(變量和函數(shù))以 @ 開(kāi)頭 (html中引用變量、對(duì)象需要使用@引用)
代碼語(yǔ)句用分號(hào)結(jié)束
變量使用 var 關(guān)鍵字聲明 (類型推斷)
字符串用引號(hào)括起來(lái)
C# 代碼區(qū)分大小寫(xiě)
C# 文件的擴(kuò)展名是 .cshtml
語(yǔ)法補(bǔ)充:
1、if for foreach while 都是代碼塊 ,用@if{} @for(){} 使用 ,或者放在代碼塊中使用 @{ if(){} }
2、讀取用戶輸入:Request[] ;數(shù)據(jù)轉(zhuǎn)換: AsInt()、AsDecimal()等
代碼塊中輸出非html和非變量?jī)?nèi)容:<text>我是要輸出的內(nèi)容</text> 或: @:我是要輸出的內(nèi)容 (內(nèi)容里也可以輸出變量 @變量名)
代碼塊中輸出內(nèi)容:同在html中 使用 @變量名(不需要冒號(hào))
在調(diào)用 返回IHtmlString類型的方法不需要“;”,也不需要在代碼塊中。如:@RenderPage() 、 @Html.Partial()等
只有在代碼塊中{}使用C#代碼需要“;” 類似@RenderPage("~/Views/Shared/PartialOne.cshtml", new {lxf= "小飛哥"})這樣輸出內(nèi)容的方法后面不需要加“;”
html中輸出變量 如:@a 在@a前后如有內(nèi)容時(shí)請(qǐng)加上括號(hào): @(a)
到此這篇關(guān)于C#中Razor模板引擎簡(jiǎn)單使用的文章就介紹到這了,更多相關(guān)Razor模板引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#實(shí)現(xiàn)ini文件讀寫(xiě)類分享
c#實(shí)現(xiàn)ini文件讀寫(xiě)類分享,大家參考使用吧2013-12-12C# 動(dòng)畫(huà)窗體(AnimateWindow)的小例子
C# 動(dòng)畫(huà)窗體(AnimateWindow)的小例子,需要的朋友可以參考一下2013-03-03解決unity rotate旋轉(zhuǎn)物體 限制物體旋轉(zhuǎn)角度的大坑
這篇文章主要介紹了解決unity rotate旋轉(zhuǎn)物體 限制物體旋轉(zhuǎn)角度的大坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04FtpHelper實(shí)現(xiàn)ftp服務(wù)器文件讀寫(xiě)操作(C#)
這篇文章主要為大家詳細(xì)介紹了FtpHelper實(shí)現(xiàn)ftp服務(wù)器文件讀寫(xiě)操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03詳解ObjectARX開(kāi)發(fā)環(huán)境的創(chuàng)建與開(kāi)發(fā)實(shí)例Hello World(VS2005+AutoCad2008+Object
這篇文章主要介紹了ObjectARX開(kāi)發(fā)環(huán)境的創(chuàng)建與開(kāi)發(fā)實(shí)例Hello World(VS2005+AutoCad2008+ObjectArx2008),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04C#實(shí)現(xiàn)獲取文件大小并進(jìn)行比較
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)獲取文件大小進(jìn)行單位轉(zhuǎn)換與文件大小比較功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03