本篇文章1603字,读完约4分钟
繁忙的工作总是占据生活的大部分时间! 所以,我的博客至今仍是微薄的复制品。 技术是用来分享和学习的。 如果对技术有不同的见解,可以大家共享。 如果以下的复印件有问题的话请指出。 除了在这个空闲时间由mvc razor在视图中分析之外,可以按同样的方式使用。
虽然项目诉求可能需要基于模板创建静态页面,但是可以使用razor语法直接分析页面,使分析的页面成为静态页面。 首先,介绍razorengine。 可以通过nuget直接引用项目。 简单地说,这意味着可以在任何地方解析razor语法,我个人认为比nvelocity灵活得多,使用方便。 在codeplex上有介绍,现在好像搬到github了。 链接razorengine.codeplex/。 最新版本在github上,请看。 便于录用。 如下所示。
string template = " hello @ model.name!" 欢迎来到拉萨! "; string result = razor.parse (模板,新名称=“世界”);
只有这样,razor才能完全支持以下动态类型,而不仅仅是视图页面:
dynamicviewbag = newdynamicviewbag (; viewbag.list =“流年莫亡”string template =“helloword @ view bag.list”string result = razor.parse (模板,空值,vierse
同样可以解析。 看源代码生存是vs的智能提示。 可以看到需要在razor.parse后面传播的参数类型。 指定号码就行了。 它支持cache 当然,我个人理解那样的cache不是那个数据缓存的cache。 例如,上面的动态分析razor.parse是用于演示的guid,但也可以使用其他string字符。 如果你下次预编译模板时使用了这个名字,直接取cache的模板进行分析。 那样的话,分析时间会减少。 这是我个人的理解,目前没有深入研究。
razorengine还支持自定义模板,如以下代码:
//自定义模板publicclassmytemplatebase:template base (公共字符串获取器) ) { return“流年莫亡”}// 自定义模板publicclasscustomtemplate:templateservice { publiccustomtemplate ( } { varservice = newrazorengine.configuration >; ); var my模板=网络模板服务; razor.settemplateservice (我的模板; }
让我简单介绍一下。 上面的那个是定制模板。 里面可以根据你的诉求写出合适的做法。 那样的话,解析的时候你就可以采用你的做法了。 例如,我的是返回的字符串。 @getstr ) )一样可以得到你的返回值。 此外,您的自定义模板以同样的方式继承templatebase。 我看了那个源代码不知道为什么同样具有通用性。 想研究的人自己
customtemplateservice = newcustomtemplate (; 返回服务.引用(内容、空值、视图标签、guid .新指南( ) .字符串);
可以用这个方法解析。 razor.parse做法是templateservice类中的一种虚的做法,支持自己改写,所以注册时继承了这个templateservice类,就是能实现你想要的。
官网上有很多为什么@html.raw ) )等这些做法不能使用的问题,其实仔细看看源代码就可以支持了。 只要改变写法,@raw ) )就可以直接输出,所以简单介绍一下这个吧。 其实razorengine还有很多功能,但目前这几个已经足够完全解析页面了。
标题:“.NET MVC Razor也可以这样玩!”
地址:http://www.sdsxywx.com/sdss/4588.html