asp.net實(shí)現(xiàn)在非MVC中使用Razor模板引擎的方法
本文實(shí)例講述了asp.net實(shí)現(xiàn)在非MVC中使用Razor模板引擎的方法。分享給大家供大家參考。具體分析如下:
模板引擎介紹
Razor、Nvelocity、Vtemplate,Razor一般在MVC項(xiàng)目中使用,這里介紹在非MVC項(xiàng)目中的用法。
如何在非MVC中使用Razor模板引擎
借助于開源的RazorEngine,我們可以在非asp.net mvc項(xiàng)目中使用Razor引擎,甚至在控制臺(tái)、WinForm項(xiàng)目中都可以使用Razor(自己開發(fā)代碼生成器)
如何使用Razor
環(huán)境搭建:
① 添加引用RazorEngine.dll
② 創(chuàng)建cshtml
新建一個(gè)html,改名為cshtml。注意:通過 添加--html頁再改成cshtml的方式打開是么有自動(dòng)提示的,必須關(guān)掉該文件重新打開。推薦使用,添加--新建項(xiàng)--html頁在這里直接改成cshtml創(chuàng)建cshtml文件,直接可用自動(dòng)提示。
開始使用:
1. 在cshtml中使用Razor語法
Razor中@后面跟表達(dá)式表示在這個(gè)位置輸出表達(dá)式的值,模板中Model為傳遞給模板的對(duì)象。
@{}中為C#代碼,C#代碼還可以和html代碼混排
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <ul> @{ for (int i = 0; i < 10; i++) { <li> @ i</li> } } </ul> </body> </html>
2. 在一般處理程序中使用Razor:
Razor對(duì)象會(huì)使用Parse方法將讀取到的cshtml解析為一個(gè)程序集,再生成html。
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; string fullPath=context.Server.MapPath(@"~/Razordemo/Razor1.cshtml"); //拿到cshtml文件路徑 string cshtml=File.ReadAllText(fullPath);//得到文件內(nèi)容 string html = Razor.Parse(cshtml);//解析cshtml文件解析得到html context.Response.Write(html); }
3. 如何在cshtml文件讀取對(duì)象的值
Razor.Parse()方法的另一個(gè)重載就是傳進(jìn)一個(gè)Model對(duì)象,在cshtml文件中通過Model就可以點(diǎn)出來對(duì)象的屬性。
在一般處理程序中解析:
Dog dog = new Dog(); dog.Id = 100; dog.Height = 120; string html = Razor.Parse(cshtml, dog); context.Response.Write(html);
在cshtml中讀取對(duì)象屬性:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <h1>狗狗信息:</h1> <h1>Id:@Model.Id</h1> <h1>身高:@Model.Height</h1> </body> </html>
希望本文所述對(duì)大家的asp.net程序設(shè)計(jì)有所幫助。
相關(guān)文章
在FireFox/IE下Response中文文件名亂碼問題解決方案
只是針對(duì)沒有空格和IE的情況下使用Response.AppendHeader()如果想在FireFox下輸出沒有編碼的文件,并且IE下輸出的文件名中空格不為+號(hào),就要多一次判斷了,接下來將詳細(xì)介紹下感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02MVC使用Log4Net進(jìn)行錯(cuò)誤日志記錄學(xué)習(xí)筆記4
這篇文章主要為大家詳細(xì)介紹了MVC使用Log4Net進(jìn)行錯(cuò)誤日志記錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09WebForm獲取checkbox選中的值(幾個(gè)簡單的示例)
WebForm中用checkbox的地方挺多的,下面寫了幾個(gè)簡單的例子,方便以后學(xué)習(xí)使用2014-07-07asp.net獲得數(shù)據(jù)控件事件索引并獲取其中值總結(jié)
asp.net獲得數(shù)據(jù)控件事件索引并獲取其中值總結(jié),需要的朋友可以參考下。2011-11-11ASP.NET檢測(cè)到不安全 Request.Form 值解決方案匯總
這篇文章主要介紹了ASP.NET檢測(cè)到不安全 Request.Form 值解決方案匯總 ,十分的全面,需要的朋友可以參考下2015-06-06ASP.NET動(dòng)態(tài)加載用戶控件的實(shí)現(xiàn)方法
動(dòng)態(tài)加載用戶控件的方法,用asp.net的朋友推薦2008-10-10ASP.NET Core中間件計(jì)算Http請(qǐng)求時(shí)間示例詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中間件計(jì)算Http請(qǐng)求時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06asp.net利用cookie保存用戶密碼實(shí)現(xiàn)自動(dòng)登錄的方法
這篇文章主要介紹了asp.net利用cookie保存用戶密碼實(shí)現(xiàn)自動(dòng)登錄的方法,實(shí)例分析了asp.net針對(duì)cookie的創(chuàng)建、提取與銷毀操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01