什么是ASP.Net MVC视图引擎?

Tom*_*han 14 asp.net-mvc viewengine

关于ASP.Net MVC中的View Engines,以及使用"自定义"而不是"默认" 的问题,有很多关于SO的问题.对于我作为业余爱好程序员来说,术语"视图引擎"是新的,我无法理解它的含义.所以,我的问题是:

  1. 什么是View引擎?

  2. View Engine的功能是什么,MVC模式中扮演的角色是什么?(与1 ...密切相关)

  3. 程序员希望通过切换到不同的View Engine来改变/避免默认View Engine的主要特征/属性是什么?

  4. 当开发人员选择使用与标准不同的其他视图引擎时,常见的其他视图引擎的主要优点是什么?(我已经多次看到"Spark View引擎"这个名字了,我打赌也有其他人).

  5. 何时(在什么情况下)我想开发自己的View Engine?

在那里,我认为这就是我想问的问题(现在).给我看View Engines 101!=)

Gal*_*boy 6

"视图引擎"处理视图呈现为html,xml或创建它要发出的任何内容类型.在"MVC"中,它将是View(V)的一个方面.

不同的视图引擎具有不同的语法等,以管理渲染.使用其他视图引擎的决定很可能是项目/程序员特定的.在某些情况下,他们可能会看到默认视图引擎的实际或感知限制; 在其他情况下,它可能只是一个不同的设计目标或焦点.

就Spark来说,他们的重点是比默认的视图引擎更简洁,并尽可能保持类似HTML的语法,而不是放入ASP.NET脚本块.

作为最终用户,您唯一想要创建自己的视图引擎的时间可能永远不会.;)这不是一项轻率的任务,您可能最终会重新实现现有视图引擎中已存在的功能.

编辑

好.那么View Engine的View.aspx文件是一部分,还是View Engine的一组类,它们有助于选择应该呈现哪些View.aspx(或其他类型的响应)?它是如何工作的?

MVC模式告诉您模型,视图和控制器将是独立的"事物".在ASP.NET MVC中,默认视图引擎使用现有的ASP.NET框架,其中包括母版页,ASPX文件等.Spark做了类似的事情,但它是一个不同的引擎,所以它不能完全相同.因此,在一般意义上,视图文件不是特定于引擎的,但是特定文件,它们在磁盘上的布局及其内容特定于视图引擎的.