专栏首页小神仙使用Razor引擎模板生成字符串

使用Razor引擎模板生成字符串

使用Razor引擎模板生成字符串,类似于T4模板,T4要学语法,Razor就是就用c#了

安装依赖包

Install-Package RazorEngine.NetCore

生成代码

class Program
{
    static void Main(string[] args)
    {
        //简单使用
        string template = "Hello @Model.Name, welcome to RazorEngine!";
        var result = Engine.Razor.RunCompile(template, "templateKey", null, new { Name = "World" });
        Console.WriteLine(result);

        //带html标签
        string template1 = "@Raw(Model.Data)";
        var model1 = new { Data = "My raw double quotes <p>appears</p> here \"hello!\"" };

        string result1 = Engine.Razor.RunCompile(template1, "templateKey1", null, model1);

        Console.WriteLine(result1);

        //使用模板文件
        string filePath = "StudentTemplate.cshtml";
        var userTemplate= File.ReadAllText(filePath);
        string result2= Engine.Razor.RunCompile(userTemplate, Guid.NewGuid().ToString(), typeof(User), new User
        {
            CreateTime = DateTime.Now,
            EmailAddress = "<p>125880321@qq.com</p>",
            UserName = "IGeekFan"
        });
        Console.WriteLine(result2);
    }
}
public class User
{
    public string UserName { get; set; }
    public string EmailAddress { get; set; }
    public DateTime CreateTime { get; set; }
}

cshtml模板

@{
    var gen = Model as RazorTemplate.User;
}

//=============================================================
// 创建人:            @gen.UserName
// 创建时间:          @gen.CreateTime
// 邮箱:             @gen.EmailAddress
//==============================================================
<h1>123</h1>
@Raw("<a>www.baidu.com<a>")

运行截图

参考资料

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • silverlight WPF 水纹文本框

    silverlight3取消了watertextbox控件,只有自己实现了个,实现了和textbox一样的无差异使用,只需要设置defaulttext就可以了

    用户6362579
  • Enum扩展特性,代替中文属性

    把原文中的out参数替换成返回元组,由于项目是vs2015开发,不能用c#7.0特性,否则用7.0中的值元组应该更好一点。性能和显示友好性都会有改进。

    用户6362579
  • 随机数_随机字符串

    用户6362579
  • Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化

          Apple与今年6月13日正式发布了Swift3.0的第一个预览版本,并且相应推出了Xcode8的第一个bate版本。开发者已经可以在Xcode8b...

    珲少
  • 在服务端发起一个Post请求

    1.http://www.tuling123.com/openapi/api?key=9d2ff29d44b54e55acadbf5643569584&info...

    用户1055830
  • 数据分析高级教程(二)

    该项目的数据分析过程在hadoop集群上实现,主要应用hive数据仓库工具,因此,采集并经过预处理后的数据,需要加载到hive数据仓库中,以进行后续的挖掘分析。

    我被狗咬了
  • Go指南练习_映射

    Zoctopus
  • win10 uwp 自定义标记扩展

    在 UWP 使用的 Binding 或 StaticResource 这些都是标记扩展,在 Windows 10 Fall Creators Update 版本...

    林德熙
  • 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]

      本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html 。本文主要学习记录以下内容:

    aehyok
  • 面试Mybatis之对象工厂和拦截器

    这节我们讲两个关于Mybatsi常用知识点,欢迎持续关注,洁癖会推出一系类相关Mybatis面试以及经常在工作中使用的知识点,废话不多说,来开始我们的讲解吧!

    小土豆Yuki

扫码关注云+社区

领取腾讯云代金券