您使用ASP.NET MVC的View Engine是什么?

时间:2008-09-03 21:00:54

标签: asp.net-mvc

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

  • ASPX,显然是
  • NVelocity
  • 抄网
  • NHaml
  • 等...

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

但是,我想知道每个人的利弊,看看大多数人在使用什么。

StackOverflow使用哪个?

7 个答案:

答案 0 :(得分:11)

我使用Spark。它在HTML和代码之间有很好的流动。 Scott Hanselman还在他的每周源代码审查帖子上做了post。我真的在挖掘它。其中一个主要功能是pre-compilation您的观点。

答案 1 :(得分:4)

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

修改

@Ben,

还有其他视图引擎可以编译(NHaml是一个),因此这些引擎支持自定义HTML帮助程序。我不会惊讶地看到当前解释的视图引擎最终最终都会以编译模型结束。

答案 2 :(得分:4)

“StackOverflow使用哪个?”

网络表单。

我问杰夫阿特伍德关于他的Tag Soup帖子的决定。他没有回复 - 我认为他正在忙着寻找一个丢失的结束标签; - )

答案 3 :(得分:4)

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

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

答案 4 :(得分:2)

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

我看到的缺点是,它是如此轻浮'冗长。我将一个应用程序转换为NVelocity,并对它看起来多么干净感到震惊。问题是有很多东西不能与NVelocity一起工作(就像你自己的自定义视图助手一样)而且严重缺乏文档。

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

答案 5 :(得分:1)

我过去曾使用过NVelocity。在大多数情况下,它使代码真正干净,易于遵循;但是,它通常最终只是一些由XSLT文件填充的ViewData变量。所以我想我的View Engine真的是XSLT(这是一个爱/恨的东西 - 扩展方法使它真正有用)和NVelocity。

答案 6 :(得分:0)

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