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