我有一个严重依赖 Ajax 来呈现页面的 C#.Net 应用程序。当用户向上/向下滚动页面时,会加载新内容。我通过 JSON 将原始数据传递给 Javascript,然后我的 JS 通过它创建 HTML 标记并写入页面。
同时,我需要使用 .Net 传递初始页面内容,以便搜索引擎和非 JS 浏览器可以消化一些东西。C# 使用相同的原始数据将标记呈现到文字控件中。
问题是我发现自己在 C# 和 JavaScript 中编写相同的格式规则,这似乎是不必要的。
一个简化的例子:
这在 C#...
for (int x=0; x < lines.Length; x++)
{
html.Append("<div>");
html.Append(lines[x].Title);
html.Append("</div>");
}
...将在 JavaScript 中与 this 匹配:
for (int x=0; x < lines.length; x++)
{
html += "<div>";
html += lines[x].Title ;
html += "</div>";
}
更改格式/布局需要同时更改两者,这似乎很愚蠢。
所以我提出的解决方案是使用 XSLT。
我会使用 .Net 为新内容动态生成 XML 文件,然后 JS 和 .Net 都可以使用相同的 XSLT 文件转换为 XHTML 并简单地输出标记。
我能看到的唯一缺点是 .Net 只会生成 XML,然后将其转换为标记。这似乎是多余的,但实际上只有一小部分前端标记将由 .Net 生成,因此页面加载延迟应该是最小的。
对此有什么想法吗?有什么选择吗?