我知道您可以在 ASP.NET MVC 中使用几种不同的视图引擎:
- ASPX,显然
- 速度
- 抄网
- 氨基甲酸酯
- 等...
默认的 ASPX 视图引擎似乎对我来说最有意义,它来自 ASP.NET WebForms 背景。
但是,我想了解每种方法的优缺点,看看大多数人都在使用什么。
StackOverflow 使用哪个?
我知道您可以在 ASP.NET MVC 中使用几种不同的视图引擎:
默认的 ASPX 视图引擎似乎对我来说最有意义,它来自 ASP.NET WebForms 背景。
但是,我想了解每种方法的优缺点,看看大多数人都在使用什么。
StackOverflow 使用哪个?
“StackOverflow 使用哪个?”
网络表格。
我向 Jeff Atwood 询问了他对 Tag Soup 帖子的决定。他没有回复——我想他正忙着寻找一个丢失的结束标签;-)
NHaml 是我的最爱,因为它简洁。人们要么喜欢它,要么讨厌它,因为它看起来与传统的“带有插入代码的 HTML”模板系统(如 ASPX 或 NVelocity)非常不同。
编辑:
@本,
还有其他可以编译的视图引擎(NHaml 就是其中之一),因此它们确实支持自定义 HTML 助手。看到当前解释的视图引擎最终最终都以编译模型结束,我不会感到惊讶。
微软最近宣布了一个新的视图引擎:Razor。
看起来很有趣: http ://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx
地球上的大多数人只会使用 ASPX,因为这是他们所知道的。另一个极好的好处是编译性质......因此您不仅可以获得类型安全和智能感知,而且还可以获得性能优势。
我看到的缺点是它太冗长了。我将一个应用程序转换为 NVelocity,并惊讶于它看起来多么干净。问题是有很多东西不适用于 NVelocity(比如您自己的自定义视图助手),并且严重缺乏文档。
我在 MvcContrib 中添加了一个功能,您可以在其中注册您自己的 HtmlExtension 类型,但在出现更好的解决方案之前,它更像是一个创可贴。
我过去使用过 NVelocity。在大多数情况下,它使代码非常干净且易于遵循;但是,它通常最终只是一些 ViewData 变量,这些变量事先已被 XSLT 文件填充。所以我想我的视图引擎真的会是 XSLT(这是一个爱/恨的东西 - 扩展方法使它非常有用)和 NVelocity。
我已经将 NVelocity 与 MonoRail 一起使用了一段时间,但最近为 Asp.Net MVC 和 MonoRail 切换到Spark。语法对我来说似乎很自然,但我想这是可以预料的。;)