8

我知道您可以在 ASP.NET MVC 中使用几种不同的视图引擎:

  • ASPX,显然
  • 速度
  • 抄网
  • 氨基甲酸酯
  • 等...

默认的 ASPX 视图引擎似乎对我来说最有意义,它来自 ASP.NET WebForms 背景。

但是,我想了解每种方法的优缺点,看看大多数人都在使用什么。

StackOverflow 使用哪个?

4

7 回答 7

11

我使用火花。它在 HTML 和代码之间有很好的流动。Scott Hanselman 也在他的每周源代码审查帖子中发表了一篇关于它的帖子我真的很喜欢它。主要功能之一是预编译您的视图。

于 2008-09-03T21:12:30.823 回答
4

“StackOverflow 使用哪个?”

网络表格。

我向 Jeff Atwood 询问了他对 Tag Soup 帖子的决定。他没有回复——我想他正忙着寻找一个丢失的结束标签;-)

于 2008-09-04T10:18:58.827 回答
4

NHaml 是我的最爱,因为它简洁。人们要么喜欢它,要么讨厌它,因为它看起来与传统的“带有插入代码的 HTML”模板系统(如 ASPX 或 NVelocity)非常不同。

编辑:

@本,

还有其他可以编译的视图引擎(NHaml 就是其中之一),因此它们确实支持自定义 HTML 助手。看到当前解释的视图引擎最终最终都以编译模型结束,我不会感到惊讶。

于 2008-09-03T21:10:11.407 回答
4

微软最近宣布了一个新的视图引擎:Razor。

看起来很有趣: http ://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

于 2010-07-14T17:14:37.213 回答
2

地球上的大多数人只会使用 ASPX,因为这是他们所知道的。另一个极好的好处是编译性质......因此您不仅可以获得类型安全和智能感知,而且还可以获得性能优势。

我看到的缺点是它太冗长了。我将一个应用程序转换为 NVelocity,并惊讶于它看起来多么干净。问题是有很多东西不适用于 NVelocity(比如您自己的自定义视图助手),并且严重缺乏文档。

我在 MvcContrib 中添加了一个功能,您可以在其中注册您自己的 HtmlExtension 类型,但在出现更好的解决方案之前,它更像是一个创可贴。

于 2008-09-03T21:08:56.027 回答
1

我过去使用过 NVelocity。在大多数情况下,它使代码非常干净且易于遵循;但是,它通常最终只是一些 ViewData 变量,这些变量事先已被 XSLT 文件填充。所以我想我的视图引擎真的会是 XSLT(这是一个爱/恨的东西 - 扩展方法使它非常有用)和 NVelocity。

于 2008-09-04T15:49:05.193 回答
0

我已经将 NVelocity 与 MonoRail 一起使用了一段时间,但最近为 Asp.Net MVC 和 MonoRail 切换到Spark。语法对我来说似乎很自然,但我想这是可以预料的。;)

于 2008-09-12T06:47:34.817 回答