網(wǎng)站首頁 編程語言 正文
使用視圖引擎可以完成一些需要定制化內(nèi)容格式的問題,比如郵件模板。
引用
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){姓名:@item.Name,年齡:@item.Age } }else{沒有數(shù)據(jù) } "; var data = new List() { 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 是一種標記語法,可以讓您將基于服務(wù)器的代碼(Visual Basic 和 C#)嵌入到網(wǎng)頁中。
基于服務(wù)器的代碼可以在網(wǎng)頁傳送給瀏覽器時,創(chuàng)建動態(tài) Web 內(nèi)容。當一個網(wǎng)頁被請求時,服務(wù)器在返回頁面給瀏覽器之前先執(zhí)行頁面中的基于服務(wù)器的代碼。通過服務(wù)器的運行,代碼能執(zhí)行復(fù)雜的任務(wù),比如進入數(shù)據(jù)庫。
Razor 是基于 ASP.NET 的,是為創(chuàng)建 Web 應(yīng)用程序而設(shè)計的。它具有傳統(tǒng) ASP.NET 的功能,但更容易使用并且更容易學(xué)習(xí)。
2、原理:
Razor 是一種將服務(wù)器代碼嵌入在網(wǎng)頁中的簡單的編程語法。
Razor 語法是基于 ASP.NET 框架,專門用于創(chuàng)建 Web 應(yīng)用程序的部分 Microsoft.NET 框架。
Razor 語法支持所有 ASP.NET 的功能,但是使用的是一種簡化語法,對初學(xué)者而言更容易學(xué)習(xí),對專家而言更有效率的。
Razor 網(wǎng)頁可以被描述成帶以下兩種類型內(nèi)容的 HTML 網(wǎng)頁: HTML 內(nèi)容和 Razor 代碼。
當 服務(wù)器讀取頁面時,它首先運行 Razor 代碼,然后再發(fā)送 HTML 頁面到瀏覽器。在服務(wù)器上執(zhí)行的代碼能夠執(zhí)行一些在瀏覽器上不能完成的任務(wù),比如,訪問服務(wù)器數(shù)據(jù)庫。服務(wù)器代碼能創(chuàng)建動態(tài)的 HTML 內(nèi)容,然后發(fā)送到瀏覽器。從瀏覽器上看,服務(wù)器代碼生成的 HTML 與靜態(tài)的 HTML 內(nèi)容沒有什么不同。
3、語法規(guī)則:
Razor 代碼塊包含在 @{ ... } 中 。 (和asp的<% %>相似),注意代碼塊中除了C#代碼,html也是允許的
內(nèi)聯(lián)表達式(變量和函數(shù))以 @ 開頭 (html中引用變量、對象需要使用@引用)
代碼語句用分號結(jié)束
變量使用 var 關(guān)鍵字聲明 (類型推斷)
字符串用引號括起來
C# 代碼區(qū)分大小寫
C# 文件的擴展名是 .cshtml
語法補充:
1、if for ?foreach while 都是代碼塊 ,用@if{} @for(){} 使用 ?,或者放在代碼塊中使用 @{ if(){} }
2、讀取用戶輸入:Request[] ;數(shù)據(jù)轉(zhuǎn)換: AsInt()、AsDecimal()等
代碼塊中輸出非html和非變量內(nèi)容:
代碼塊中輸出內(nèi)容:同在html中 ?使用 ?@變量名(不需要冒號)
在調(diào)用 返回IHtmlString類型的方法不需要“;”,也不需要在代碼塊中。如:@RenderPage() 、 @Html.Partial()等
?只有在代碼塊中{}使用C#代碼需要“;” ? 類似@RenderPage("~/Views/Shared/PartialOne.cshtml", new {lxf= "小飛哥"})這樣輸出內(nèi)容的方法后面不需要加“;”
html中輸出變量 ?如:@a ? ?在@a前后如有內(nèi)容時請加上括號: @(a)
原文鏈接:https://www.cnblogs.com/huhangfei/p/8917326.html
相關(guān)推薦
- 2022-01-30 Unknown custom element: <router-view> - did you re
- 2022-10-05 python?slack桌面自動化開發(fā)工具_python
- 2023-01-15 詳解Qt中線程的使用方法_C 語言
- 2023-02-27 Python?input()函數(shù)案例教程_python
- 2022-04-01 用C語言實現(xiàn)推箱子游戲?qū)嵗齙C 語言
- 2022-07-22 CondaVerificationError:關(guān)于conda虛擬環(huán)境卸載后導(dǎo)致python版本腐化的
- 2023-06-19 Python機器學(xué)習(xí)之隨機梯度下降法的實現(xiàn)_python
- 2022-07-15 關(guān)于在Redis中使用Pipelining加速查詢的問題_Redis
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支