0

我有一个严重依赖 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 生成,因此页面加载延迟应该是最小的。

对此有什么想法吗?有什么选择吗?

4

1 回答 1

0

如果使用 C# 生成的服务器端和使用 JavaScript 的客户端生成的 HTML 是相同的,我宁愿摆脱 JavaScript 生成,只在服务器上生成一次 HTML,使用 XLST 或直接使用代码。JavaScript 可以通过 AJAX 调用获取此 HTML 并直接显示它,并在需要的地方附加事件处理程序。

于 2012-04-19T20:01:06.860 回答