c# – 如何使用RazorEngine中的相同键在更新的模板上运行Complie?
作者:互联网
string template = "Hello @Model.Name, welcome to RazorEngine!";
var result = Engine.Razor.RunCompile(template, "templateKey", null, new { Name = "World" });
现在我将现有模板更新为如下所示.我从数据库中获取模板.
string template = "Hello @Model.Name, welcome to My World!";
每当我这样做,我得到一个错误相同的密钥已经用于另一个模板.
解决此问题的最佳方法是什么?
解决方法:
问题是您没有使用您传入的模板代码所特有的模板密钥.RazorEngine缓存模板并对其进行编译,以便下次运行时运行速度更快.
var helloTemplate = "Hello @Model.Name";
string result;
var model = new { Name = "World" };
//Has the template already been used? If so, Run without compilation is faster
if(Engine.Razor.IsTemplateCached("helloTemplate", null))
{
result = Engine.Razor.Run("helloTemplate", null, model);
}
else
{
result = Engine.Razor.RunCompile(helloTemplate, "helloTemplate", null, model);
}
标签:c,asp-net-web-api2,razorengine 来源: https://codeday.me/bug/20190623/1266111.html