網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
使用視圖引擎可以完成一些需要定制化內(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ù)
補(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ù)器的代碼。通過服務(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ù)器數(shù)據(jù)庫(kù)。服務(wù)器代碼能創(chuàng)建動(dòng)態(tài)的 HTML 內(nèi)容,然后發(fā)送到瀏覽器。從瀏覽器上看,服務(wù)器代碼生成的 HTML 與靜態(tài)的 HTML 內(nèi)容沒有什么不同。
3、語(yǔ)法規(guī)則:
Razor 代碼塊包含在 @{ ... } 中 。 (和asp的<% %>相似),注意代碼塊中除了C#代碼,html也是允許的
內(nèi)聯(lián)表達(dá)式(變量和函數(shù))以 @ 開頭 (html中引用變量、對(duì)象需要使用@引用)
代碼語(yǔ)句用分號(hào)結(jié)束
變量使用 var 關(guān)鍵字聲明 (類型推斷)
字符串用引號(hào)括起來(lái)
C# 代碼區(qū)分大小寫
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)容:
代碼塊中輸出內(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)
原文鏈接:https://www.cnblogs.com/huhangfei/p/8917326.html
相關(guān)推薦
- 2023-02-05 k8s?與docker空間使用分析與清理方法_docker
- 2022-06-06 自定義overflow產(chǎn)生的滾動(dòng)條樣式設(shè)置
- 2024-04-08 MAC更新和使用composer
- 2022-01-10 cookie localstorage sessionstorage的區(qū)別
- 2022-08-06 python列表去重的5種常見方法實(shí)例_python
- 2023-01-21 詳解Go語(yǔ)言如何使用標(biāo)準(zhǔn)庫(kù)sort對(duì)切片進(jìn)行排序_Golang
- 2023-01-10 golang實(shí)現(xiàn)簡(jiǎn)單的tcp數(shù)據(jù)傳輸_Golang
- 2022-06-11 利用Nginx實(shí)現(xiàn)URL重定向的簡(jiǎn)單方法_nginx
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支