这可能吗?举个我想要实现的例子,以 Facebook 评论系统为例。现有评论在服务器上呈现,但如果我留下新评论,它是在客户端使用 AJAX 创建的。理想情况下,我只想将评论模板存储在一个地方,并且可以在服务器(由 Razor 呈现)和客户端(使用服务器返回的 JSON 在 Javascript 中呈现)上访问它。
有什么想法吗?
编辑:我想另一种选择是坚持纯服务器端呈现,当用户发布新评论时,将呈现的 HTML 返回给浏览器以填充到 DOM 中。这不是很好,但我很想知道这是否也可行。
最佳答案
我反对在服务器端渲染然后将其发送回您的 JS 脚本以获得带宽和性能。相反,您应该使用可同时在服务器和客户端上运行的模板引擎。当客户端想要刷新评论时,它只请求评论的数据,然后使用服务器上使用的相同模板将旧评论 html 替换为从数据呈现的新 html。
我一直在使用 Mustache 模板引擎通过 PHP 和 JS 来实现这一点。有一个 .NET 版本,我猜它适用于 ASP.NET,我猜你正在使用 ASP.NET。
所以我所做的是确保在 PHP 和 JS 中以相同的方式格式化数据,然后使用 Mustache 模板进行渲染。
Mustache 使用简单。你拿一个对象和一个模板,你就得到了 HTML。
示例对象:
object->user = "Kilroy"
object->comment = "was here"
object->edited = true
示例模板:
{{user}} {{comment}} {{#edited}}(This comment has been edited){{//edited}}
结果:
Kilroy was here (This commment has been edited)
关于javascript - 适用于客户端和服务器的 ASP.NET MVC 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187223/