有兴趣了解一下StringTemplate引擎,并创建一个HTML页面,可以在Visual Studio 2013中使用C#来使用StringTemplate。
我已经进行了相当广泛的搜索,但是已经能够将一些简单的代码放在一起,这些代码将能够使用库,但是我收到了一个运行时错误说明。
内容[匿名]属性字符串未定义
我以为我已经在正确的位置和正确的文件路径中添加了分隔符,但似乎仍然遇到此错误,我仍然是编程的新手,我错过了我的代码中明显的东西吗?
我一直在努力寻找关于图书馆,视频示例等的广泛信息。
提前致谢。
我在下面添加了代码。
static void Main(string[] args)
{
var System = new Program();
System.HelloWorld();
Console.ReadLine();
}
public string HelloWorld()
{
Template template;
var path = @"C:\TemplateTester\index.st";
var file = new FileInfo(path);
using (StreamReader reader = file.OpenText())
template = new Template(reader.ReadToEnd(), '$', '$'); // custom delimeter (defaults are "<" and ">")
template.Add("title", "Hello World!");
template.Add("array", new string[] { "Record A", "Record B", "Record C" });
template.Add("object", new { PropertyA = "A", PropertyB = "B" });
return template.Render();
}
我的ST档案
<html>
<body>
<h1>Hello World</h1>
$! file: C:\TemplateTester\index.st !$
String:
$string$
Array:
$array:{it|$it$ ($i$)};separator=", "$
Object:
Property A = $object.PropertyA$
Property B = $object.PropertyB$
</body>
</html>
由于我当前的声誉,我无法添加我的FilePath图像,但是,ST文件只是位于Application文件夹中,因为路径会建议使用visual studio文件。程序文件夹中的外部(包含bin,obj,属性等)和Package文件夹(包含Antlr引用)。
答案 0 :(得分:2)
模板文件包含表达式$string$
,但您没有使用string
方法定义template.Add
属性的值,就像您对title
所做的那样,{{ 1}}和array
。