gpt4 book ai didi

c# - Dotliquid 模板渲染输出文件路径

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:21 25 4
gpt4 key购买 nike

我目前正尝试在 C# 中使用 DotLiquid,我观察到一种我不太理解的行为。由于我对 C# 不是很熟悉,所以我不能确定我的问题是 C# 本身还是 DotLiquid,所以请耐心等待。 =)

我有一个非常基本的 index.liquid,我正试图将一个 Table 对象传递给它。为了开始,我重写了 toString() 以简单地创建一个表示,现在,我稍后会想要使用实际的对象。尝试使用模板时,这就是我所做的:

public static void createHTML(DataTable table)
{
string templatePath = @"C:\Path\To\index.liquid";
var template = Template.Parse(templatePath);
template.Render(Hash.FromAnonymousObject(new
{
table = DataMapper.createTable(table).toString()
});

using (StreamWrite file = new StreamWriter(@"C:\Some\Path\test.html"))
{
file.write(template.Render());
}
}

现在,当我打开这个新创建的 test.html 时,它只包含 C:\Path\To\index.liquid,这意味着我无法加载我的模板正确。看着Try to use DotLiquid with c#我本以为我正在正确加载模板并使用 File.ReadAllText(templatePath)); 向我展示了 templatePath 指向正确的文件。

这表明我不了解有关 Template.Parse()Template.Render() 的一些非常基本的东西,其中源代码没有提供给我凭借我所缺少的洞察力,希望您能帮助我。

最佳答案

希望避免其他人被绊倒。输出是文件路径的真正原因是因为 Template.Parse(string source) 需要实际模板内容,而不是文件路径。

为了完成您的尝试,您需要以这种方式使用它:

Template template = Template.Parse(File.ReadAllText(templatePath));

关于c# - Dotliquid 模板渲染输出文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44758773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com