javascript - 适用于客户端和服务器的 ASP.NET MVC 模板

标签 javascript asp.net asp.net-mvc templates razor

这可能吗?举个我想要实现的例子,以 Facebook 评论系统为例。现有评论在服务器上呈现,但如果我留下新评论,它是在客户端使用 AJAX 创建的。理想情况下,我只想将评论模板存储在一个地方,并且可以在服务器(由 Razor 呈现)和客户端(使用服务器返回的 JSON 在 Javascript 中呈现)上访问它。

有什么想法吗?

编辑:我想另一种选择是坚持纯服务器端呈现,当用户发布新评论时,将呈现的 HTML 返回给浏览器以填充到 DOM 中。这不是很好,但我很想知道这是否也可行。

最佳答案

我反对在服务器端渲染然后将其发送回您的 JS 脚本以获得带宽和性能。相反,您应该使用可同时在服务器和客户端上运行的模板引擎。当客户端想要刷新评论时,它只请求评论的数据,然后使用服务器上使用的相同模板将旧评论 html 替换为从数据呈现的新 html。

我一直在使用 Mustache 模板引擎通过 PHP 和 JS 来实现这一点。有一个 .NET 版本,我猜它适用于 ASP.NET,我猜你正在使用 ASP.NET。

所以我所做的是确保在 PHP 和 JS 中以相同的方式格式化数据,然后使用 Mustache 模板进行渲染。

http://mustache.github.com/

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/

相关文章:

asp.net-mvc - 如何指定 DataAnnotation ValidationAttribute 的顺序?

javascript - asp.net mvc : Images, Css 文件和 javascript 文件没有被缓存

javascript - CSS 文件中的媒体查询根本不起作用

javascript - 将网站表单连接到(编译的)java/common lisp 程序(网站作为 UI)

javascript - 从 slider 中删除图像不会显示任何内容

c# - 如何在 DataTable 列中添加前导零

javascript - 如何使用Jquery在div中加载页面时显示进度条

c# - 使用 MySql MySQLMembershipProvider - autogenerateschema ="true"不工作?

javascript - 无法从 Google map [object HTMLInputElement] 保存坐标变量

Asp.net MVC 之间的差异 <% : and <%=