对于 MVC中的视图引擎,以及如何使用“自定义”引擎而不是“默认”引擎,还有很多问题。对我来说,作为一个爱好程序员,术语“查看引擎”是新的,我一直无法理解它的含义。所以,我的问题是:
在这里,我想这是我(目前)想要的全部。给我查看引擎101!=)
发布于 2009-05-12 15:07:53
“视图引擎”处理将视图呈现为html、xml或其创建以发出的任何内容类型。在"MVC“中,它将是视图(V)的一个方面。
不同的视图引擎有不同的语法等来管理呈现。使用另一个视图引擎的决定很可能是特定于项目/程序员的。在某些情况下,他们可能会看到默认视图引擎的实际或感知限制;在其他情况下,可能只是一个不同的设计目标或焦点。
至于斯派克,他们的重点是要比默认视图引擎简洁得多,尽量保持类似HTML的语法,而不是跳入ASP.NET脚本块。
作为最终用户,您唯一想要创建自己的视图引擎的时候可能永远不会。)这不是一个可以掉以轻心的任务,您可能最终会重新实现现有视图引擎中已经存在的功能。
编辑
好的。那么,View.aspx文件是视图引擎的一部分,还是视图引擎是帮助选择应该呈现哪种View.aspx (或其他类型的响应)的一组类?它是怎么工作的?
MVC模式告诉您,您的模型、视图和控制器将是独立的“事物”。在ASP.NET MVC中,默认视图引擎使用现有的ASP.NET框架,其中包括母版页、ASPX文件等。Spark做了一些类似的事情,但它是一个不同的引擎,因此它的工作方式不完全相同。因此,在一般意义上,视图文件不是特定于引擎的,而是特定的文件,它们在磁盘上的布局和内容是特定于视图引擎的。
发布于 2009-05-12 15:12:38
除了想要完全替换视图引擎(例如Spark)之外,您还可以使用自己的视图引擎来对默认视图引擎的行为进行小的更改。您可以通过创建一个从默认引擎继承并重写某些行为的新视图引擎来做到这一点。
一个常见的例子是调整视图引擎在硬盘上查找.aspx文件的位置。例如,您可能希望创建一个视图引擎,该引擎根据用户是否在移动设备上自动切换所使用的view.aspx文件。
有关此功能的一个非常好的示例实现,请参见带有ASP.NET MVC和移动浏览器定义文件的移动网站。
更新:
Scott刚刚发布了一个与上面链接的初始实现相比有重要改进的更新的ViewEngine实现。
https://stackoverflow.com/questions/853097
复制相似问题