【问题标题】:Compile/Interpret Razor View in JavaScript在 JavaScript 中编译/解释 Razor 视图
【发布时间】:2012-08-07 14:08:36
【问题描述】:

我正在使用 ASP.NET MVC 4,想知道是否有办法将 Razor 视图编译成 JavaScript?这意味着我想用 JavaScript 创建 HTML!这将允许控制器根据请求使用 HTML 或 JSON 进行响应,从而使我能够最小化带宽和 CPU 要求,同时更快地为每个客户端提供页面。是否有这样的编译选项(我想在编译成 JavaScript 之前实际运行 HTML 帮助程序),或者是否有用于 Razor 语法的 JavaScript 解释器?

【问题讨论】:

  • 我不认为有解释器,但你可以使用这个:stackoverflow.com/questions/3234003/…
  • 这会破坏目的。目的是减少带宽和 CPU 周期,构建生成的 HTML 客户端而不是服务器端。
  • 你认为客户将如何获得这个 cshtml?
  • 因此我想将它编译成 JavaScript 并作为纯 JavaScript 提供。想想 Spark 编译成 JS 函数,或者缓存 Mustache 模板并使用 Mustache 解释器来呈现客户端。如果解释器可用,在 JS 中缓存整个视图不是问题,但首选编译器。

标签: c# javascript asp.net asp.net-mvc razor


【解决方案1】:

目前有一个名为 RazorClientTemplates 的项目将 Razor 视图编译为 JavaScript。

我在一个带有 Backbone 的 MVC 3 项目中使用它——它可以工作,但对代码块和 HTML 帮助程序的支持非常有限。

【讨论】:

  • 感谢您的到来并让我知道这一点。
【解决方案2】:

没有办法在 JavaScript 中使用 Razor 本身,但是有几个 JavaScript 模板和 MVVM 引擎。

看看:

不幸的是,这比仅仅重复使用 Razor 模板要复杂得多。

【讨论】:

  • 我不是在寻找 MVVM,但我知道 Handlebars(基本上是 Mustache,因为您也可以为 ASP.NET MVC 获得它)。 Spark 可能更好,因为它不仅仅是一个解释器,而是一个实际的编译器。不过,我仍在考虑使用 Razor。
  • 那么你应该知道最好不要为 JavaScript 请求 Razor :) 它基本上是带有助手之类的强类型语言。即使有人尝试过,您也无法在客户端完成所有这些操作。从未听说过 Spark,但如果它在客户端工作,我看不出它怎么可能成为“实际编译器”。
  • 这个想法是采用 Razor 模板,执行帮助程序并更改控制流以使用 JavaScript 语法,同时构建要返回的 HTML 字符串。这是一个编译成 JavaScript 的视图,没有依赖项和纯 JS 以在浏览器中运行。另一方面,解释器需要实际的模板,而编译的视图不需要。很多视图引擎都能够编译,我很困惑为什么 Razor 没有这种功能。
猜你喜欢
  • 2018-09-24
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
  • 2015-10-24
  • 2016-11-19
  • 1970-01-01
相关资源
最近更新 更多