日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

.NET Mvc Razor也可以这样玩!

發(fā)布時(shí)間:2025/3/21 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Mvc Razor也可以这样玩! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????? 忙碌的工作總是占據(jù)了生活的大部分的時(shí)間!所以我的博客到現(xiàn)在還是寥寥的幾篇文章,技術(shù)是用來(lái)分享和學(xué)習(xí)的,對(duì)技術(shù)有不同的見(jiàn)解,大家都可以分享下,如果如下文章有問(wèn)題之處請(qǐng)各位指出來(lái),在這個(gè)閑下來(lái)的時(shí)間給大家說(shuō)說(shuō)mvc Razor除了在視圖上解析外,一樣可以這樣用。

?????在有些項(xiàng)目需求上或許需要根據(jù)模板生產(chǎn)靜態(tài)頁(yè)面,那么你一樣可以用Razor語(yǔ)法去直接解析你的頁(yè)面從而把解析的頁(yè)面生成靜態(tài)頁(yè),首先介紹下RazorEngine,在nuget上可以直接引用到項(xiàng)目上,這個(gè)東西通俗的來(lái)講就是可以在任何地方解析razor語(yǔ)法,個(gè)人覺(jué)得要比NVelocity靈活好用很多。在codeplex上有介紹,現(xiàn)在好像搬到Github上了,鏈接http://razorengine.codeplex.com/,最新的版本在Github上,大家可以看看,使用上很方便,如下:

string template = "Hello @Model.Name! Welcome to Razor!";string result = Razor.Parse(template, new { Name = "World" });

  就這么簡(jiǎn)單你就可以不只在視圖頁(yè)面上使用Razor了,它完全支持動(dòng)態(tài)類型,如下:

dynamic ViewBag = new DynamicViewBag();ViewBag.list = "流年莫逝"; string template = "Hello Word @ViewBag.list";
string result = Razor.Parse(template,null,ViewBag,Guid.NewGuid().ToString());

一樣可以解析出來(lái),看源碼活著是VS的智能提示你可以看到Razor.Parse后面需要傳遞的參數(shù)類型,只要對(duì)號(hào)入座就行了,它是支持cache的,當(dāng)然它的這種cache我個(gè)人理解的并不是那種數(shù)據(jù)緩存的cache,如上面dynamic類型的解析Razor.Parse我是演示用的Guid,但是你可以用其他的string字符,如果你下次預(yù)編譯模板的時(shí)候還是用的這個(gè)名字的話就會(huì)直接取cache里的模板來(lái)做解析,這樣減少了解析時(shí)間,這是我的個(gè)人理解,目前還沒(méi)有深入的去研究。
????? RazorEngine還支持自定義模板,如下代碼:

//自定義模板public class MyTemplateBase<T> : TemplateBase<T>{public string GetStr(){return "流年莫逝";} }//注冊(cè)自定義模板public class CustomTemplate : TemplateService{public CustomTemplate(){var Service = new RazorEngine.Configuration.TemplateServiceConfiguration();Service.BaseTemplateType = typeof(MyTemplateBase<>);var MyTemplate = new TemplateService(Service);Razor.SetTemplateService(MyTemplate);} }

簡(jiǎn)單介紹下啊,上面那個(gè)是自定義的模板,里面你可以按你的需求寫(xiě)相應(yīng)的方法,這樣在解析的時(shí)候你一樣可以使用你的方法,比方我的是返回的字符串,你用@GetStr()一樣可以得到你的返回值,另外你的自定義模板一樣要繼承TemplateBase<T>,我看了它的源碼不知道為什么一樣要帶上一個(gè)泛型,想研究的可以自己看看,注冊(cè)模板后你就可以使用了,
CustomTemplate service = new CustomTemplate();
return service.Parse(Content, null, ViewBag, Guid.NewGuid().ToString());按這種方法就可以解析了,Razor.Parse方法是TemplateService類里面的一個(gè)虛方法,是支持自己重寫(xiě)的,所以在注冊(cè)的時(shí)候你繼承了這個(gè)TemplateService類,就是可以實(shí)現(xiàn)你想要的了!

?????看到官網(wǎng)上有很多提問(wèn)為什么不能用@Html.Raw()等這些方法,其實(shí)你要是仔細(xì)看源碼的話是可以支持的,只是換了個(gè)寫(xiě)法你可以直接用@Raw()來(lái)進(jìn)行輸出,就簡(jiǎn)單介紹這么多吧,其實(shí)RazorEngine還有很多功能的,但是目前以上幾種完全夠解析頁(yè)面用了!

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/liunianmoshi/p/3271670.html

總結(jié)

以上是生活随笔為你收集整理的.NET Mvc Razor也可以这样玩!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产a国产片| 国产一区在线看 | 日批av| 亚洲午夜视频在线 | 视频国产一区 | 精品午夜福利在线观看 | 日本三级视频 | 成人精品视频在线观看 | 中文字幕第9页 | 亚洲精品久久久久av无码 | www.av在线.com | 久久伊人成人网 | 中文字幕在线视频网 | 亚洲1234区 | 日本道在线观看 | 国产日产欧美一区二区 | a级片视频网站 | 福利社区一区二区 | 男人午夜免费视频 | 久久精品无码人妻 | 99精品国产免费 | 亚洲精品小视频 | 羞羞的软件 | 成人激情在线观看 | 男女日批视频 | 国产人成一区二区三区影院 | jizz内谢中国亚洲jizz | 日日骚一区二区 | 亚洲av无码专区在线播放中文 | 精品国产精品国产偷麻豆 | 四十路av | 欧美成人三级伦在线观看 | 在线观看亚洲a | 综合网av | 福利社91 | 成人免费观看视频 | v888av| 久久综合资源 | 日韩欧美在线观看视频 | 人与动物2免费观看完整版电影高清 | 在线视频1卡二卡三卡 | 无码国模国产在线观看 | 国产精品91av | 亚洲午夜无码久久 | 国产无限资源 | 精品成在人线av无码免费看 | 亚洲AV无码成人精品国产一区 | 中文字幕在线一区二区三区 | 日韩a毛片 | 成人在线观 | 一级黄色大片免费 | 国产三级久久 | 欧美特级a | 亚洲欧美综合视频 | 天堂资源中文 | 日本亚洲视频 | 美女av网| 一级生活毛片 | 亚洲va久久久噜噜噜无码久久 | 国产chinesehd天美传媒 | 看黄网站在线观看 | 30一40一50女人毛片 | 免费在线看视频 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 黄色特级毛片 | 黄色永久免费网站 | 无码国产色欲xxxxx视频 | 成人自拍网 | 99久久精品国产一区色 | 麻豆久久久| а 天堂 在线 | 三级福利视频 | 东京热一本视频一区 | 91国产大片 | 亚洲五码在线 | 国产欧美久久久精品免费 | 国产美女精品久久 | 日韩欧美网站 | 久久国产日韩欧美 | 性欧美巨大 | 99热8| 国产成人麻豆免费观看 | 久色视频在线观看 | 亚洲在线精品视频 | 亚洲国产系列 | 免费色播| 无遮挡边吃摸边吃奶边做 | 又白又嫩毛又多15p 超碰在线一区 | 成人黄色小视频 | 99视频精品免费 | 中国丰满老太hd | 99热超碰| 日韩欧美理论片 | 日日操夜夜操狠狠操 | 少妇一级淫免费放 | 色综合天天综合综合国产 | 日韩欧美中文字幕精品 | 国产免费一级视频 | 波多野结衣一区 |