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

Mik*_*ain 9 javascript asp.net asp.net-mvc templates razor

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

有任何想法吗?

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

小智 8

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

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

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

http://mustache.github.com/

胡子很容易使用.您获取一个对象和一个模板,然后返回HTML.

示例对象:

object->user = "Kilroy"
object->comment = "was here"
object->edited = true
Run Code Online (Sandbox Code Playgroud)

示例模板:

{{user}} {{comment}} {{#edited}}(This comment has been edited){{//edited}}
Run Code Online (Sandbox Code Playgroud)

结果:

Kilroy was here (This commment has been edited)
Run Code Online (Sandbox Code Playgroud)