几周前,我在查看http://derbyjs.com/和 meteor.js 时对此感到疑惑。我喜欢这些平台的地方在于,它们支持在支持 JavaScript 的浏览器的服务器(如 ASP.Net MVC 视图)和客户端上共享 (HTML) 模板。基本上结合了 HTML 的 ASP.Net MVC 服务器端渲染和 ASP.Net 单页应用程序架构。这样我们只需在一个地方维护视图/模板代码,并使其可用于服务器端渲染以及客户端 MVC / MVVM。是否有这样的解决方案可用或在某处工作?
2 回答
我一直在寻找同样的东西,我遇到了一些选择:
一种简单但有限的方法,因为它是“无逻辑模板”,是 mustache 模板 - 它们有 .net nustache
Razor 视图引擎到 Javascript 的端口,如 Javascript + Razor == Jazor?-
- kirbysayshi/vash 在 github 上还有另一个端口可能更活跃 - https://github.com/kirbysayshi/vash
- kirbysayshi/vash 在 github 上还有另一个端口可能更活跃 - https://github.com/kirbysayshi/vash
Spark 视图引擎 - Scott Allen 和 Hanselman 等一些 .net 英雄谈论它......以及此处的帖子http://odetocode.com/blogs/scott/archive/2009/03/12/client-rendering -views-with-spark-and-asp-net-mvc.aspx显示了相同的 Spark 视图如何在服务器和客户端上实现。
也许还有更多……因为这似乎是统一查看代码以编写一次并在客户端/服务器上运行的共同愿望。
如果我现在根据 GitHub 上项目的活动来选择,kirbysayshi/vash 有持续的提交并且非常活跃!由于 Vash 是 Razor 的一个端口,它可能是目前最容易访问和最成熟的。
我认为没有。
我记得一年前找了一个,但我找不到。
这完全取决于您的应用程序,但如果您继续在服务器端渲染并使用 ajax 带回部分视图,以便您可以刷新页面的某些部分,那么您应该获得足够好的性能。
诀窍是创建将呈现部分页面的小动作(而不是通过 呈现部分视图Html.RenderPartial
)。然后,您可以通过 ajax 调用相同的操作来刷新页面的某些部分。