千家信息网

.NET MVC Razor怎么用

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,.NET MVC Razor怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。忙碌的工作总是占据了生活的大部分的时间!
千家信息网最后更新 2025年01月18日.NET MVC Razor怎么用

.NET MVC Razor怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

忙碌的工作总是占据了生活的大部分的时间!所以我的博客到现在还是寥寥的几篇文章,技术是用来分享和学习的,对技术有不同的见解,大家都可以分享下,如果如下文章有问题之处请各位指出来,在这个闲下来的时间给大家说说mvc Razor除了在视图上解析外,一样可以这样用。

在有些项目需求上或许需要根据模板生产静态页面,那么你一样可以用Razor语法去直接解析你的页面从而把解析的页面生成静态页,首先介绍下RazorEngine,在nuget上可以直接引用到项目上,这个东西通俗的来讲就是可以在任何地方解析razor语法,个人觉得要比 NVelocity灵活好用很多。在codeplex上有介绍,现在好像搬到Github上了,链接http://razorengine.codeplex.com/,***的版本在Github上,大家可以看看,使用上很方便,如下:

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

就这么简单你就可以不只在视图页面上使用Razor了,它完全支持动态类型,如下:

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

一样可以解析出来,看源码活着是VS的智能提示你可以看到Razor.Parse后面需要传递的参数类型,只要对号入座就行了,它是支持cache的,当然它的这种cache我个人理解的并不是那种数据缓存的cache,如上面dynamic类型的解析Razor.Parse我是演示用的Guid,但是你可以用其他的string字符,如果你下次预编译模板的时候还是用的这个名字的话就会直接取cache里的模板来做解析,这样减少了解析时间,这是我的个人理解,目前还没有深入的去研究。

RazorEngine还支持自定义模板,如下代码:

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

简单介绍下啊,上面那个是自定义的模板,里面你可以按你的需求写相应的方法,这样在解析的时候你一样可以使用你的方法,比方我的是返回的字符串,你用@GetStr()一样可以得到你的返回值,另外你的自定义模板一样要继承TemplateBase,我看了它的源码不知道为什么一样要带上一个泛型,想研究的可以自己看看,注册模板后你就可以使用了,

CustomTemplate service = new CustomTemplate();  return service.Parse(Content, null, ViewBag, Guid.NewGuid().ToString());

按这种方法就可以解析了,Razor.Parse方法是TemplateService类里面的一个虚方法,是支持自己重写的,所以在注册的时候你继承了这个TemplateService类,就是可以实现你想要的了!

看到官网上有很多提问为什么不能用@Html.Raw()等这些方法,其实你要是仔细看源码的话是可以支持的,只是换了个写法你可以直接用@Raw()来进行输出,就简单介绍这么多吧,其实RazorEngine还有很多功能的,但是目前以上几种完全够解析页面用了!

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

模板 方法 支持 页面 个人 时候 时间 源码 类型 需求 字符 就是 技术 文章 流年 视图 语法 还是 静态 项目 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 融媒体中心网络技术人员实操 云服务器网络延迟怎么优化 中国银行杭州软件开发中心 互联网与科技金融 网络安全周6个主题日 腾讯视频服务器连接失败怎么回事 完美竞技平台服务器进不去 共建网络安全共享文明网络心得 山东电商软件开发价钱 软件开发有几种状态 剑盾什么时候开始服务器升级 做好网络安全的预警及防护工作 软件开发培训学校中国福彩 魔兽世界美服服务器ip地址 手持pda数据库连接错误 网络安全通报预警系统 网络安全个人重要性 iis初始化数据库连接失败 长沙雄浩网络技术有限公司怎么样 滕州网络安全工作地点 汽车电脑维修软件开发 服务器方对象 上海潮流软件开发设施品质保障 我的世界梦想服务器 美团外卖服务器大小 浙江正规网络技术分类价目表 云服务器可以当电脑用么 金融网络安全知识问答 强化网络安全知识水平 数据库不及格
0