【发布时间】:2010-10-28 20:02:11
【问题描述】:
我们有一堆域实体,应该呈现为 html 格式,在弹出窗口中显示它们的详细信息。
我很乐意做这样的事情:
Product product = new Product(...);
product.ToHtml(); // or: HtmlRenderer.Render(Product);
但我的主要问题是如何从后面做这些事情。 我有 3 个不同的答案:
1.按代码呈现:
我可以简单地编写用于在 ToHtml 方法 (C#) 中呈现 Html 的代码 - 问题在于它太是静态的。如果您想将标题移动一点到中间,您应该更改代码。 此外,C#中的Html缩进很难阅读。
2。使用 XSL:
XSL Files 可以轻松管理 Html 模板,并且使用 XSLT 我可以将 XML 文件转换到文档的正确位置。 已经由其他人编写的解析器(只需要学习语法) ** 为此,我们需要每个对象都可以序列化为 Xml。如果对象更改-> Xml 将更改-> xslt 也需要更改 ** 这也让我可以选择轻松缩进 html,例如:添加 css 功能和\或更改 html 设计
3.使用其他模板引擎:
编写我自己的 C# -> Html 模板引擎,这样它将从文件 (*.template) 中读取模板,并使用反射在模板的正确位置插入正确的属性。 ** 在这个解决方案中,我们有很多可以想到的问题,例如:语法应该是怎样的? 这东西好吗? %名称% %描述% 以及我们如何处理数组? ** 也许我们可以使用现有的引擎(Brail 或 T4-Templating)?
你喜欢什么? 你知道一个好的引擎吗? 现在我更喜欢第二种解决方案,但它会很慢。
谢谢
【问题讨论】:
标签: c# html rendering template-engine