什么是视图引擎? 它究竟做了什么?

我开始学习ASP.NET MVC3。

所以,在网上和书本上阅读教程时,我经常碰到这个术语“查看引擎” 。 我不知道是什么

它究竟做了什么?

为什么这对我来说很重要?

视图引擎负责从您的视图创buildHTML。 视图通常是HTML和编程语言的混合。 大多数这种模式被称为两步法 。

例如,ASP.NET自带的视图引擎开箱即用。 这是视图中有许多标签(如<% %><%: %> 。 它使用.aspx文件扩展名。

在ASP.NET MVC3中,增加了另一个开箱即用的视图引擎Razor ,它具有更吸引人的语法,例如<div>@Model.UserName</div>

视图引擎的select是非常重要的,因为视图引擎的特征集是非常不同的。 有些支持渲染为PDF文件,例如; 有些不能在web上下文之外使用(对于旧的ASP.NET视图引擎也是如此),而另一些则可以(例如Razor)。 当您想要创buildHTML电子邮件时,“离线”显示视图就会派上用场。这些电子邮件应该是从后台工作人员而不是Web应用程序发送的。

在这里有一个很好的比较asp.net视图引擎 。

好消息是,您可以在ASP.NET MVC中并行使用多个视图引擎,但除非必要,否则我不会推荐它。

Razor引擎中有一些非常漂亮的扩展点。 例如,您可以提供自定义视图基类,这是一个强大的概念,可以轻松地在正确的位置添加大量function,而不必混淆所有需要应对的细节。

我现在去剃刀。

视图引擎是什么负责渲染您的视图,并将您的代码转换成光荣的HTML。 因此,他们直接负责如何在您的视图中编写代码。

基本上有两个你需要关心的:ASPX和Razor。 在我看来,Razor更加时尚,更容易使用,代价只有MVC3。

例如,ASPX中的代码块可能如下所示:

 <% foreach(var item in Model) { %> <tr> <td><%: item.Name %></td> </tr> <% } %> 

而剃刀相当于这样的:

 @foreach(var item in Model) { <tr> <td>@item.Name</td> </tr> } 

视图引擎是MVC用来从控制器查找和呈现视图的内容。 如果你对默认路由感到满意,你可能不需要改变任何东西,但是可以说你想让你的共享文件通常位于root / views / shared,而不是位于root / common中,那么你将会使用一个自定义的viewengine需要创build能够做到这一点。

在这里你可以看到如何build立一个viewengine:

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

视图引擎也负责渲染视图,但是因为你只是在学习MVC,你可能不需要改变渲染function

在MVC中,View引擎是在你的View和浏览器之间工作的,通过编译你的View中的代码来为你的浏览器提供有效的HTML输出。 有许多可用的视图引擎,其中一些是:

  1. ASPX

  2. 剃刀

  3. 火花

  4. NHaml

  5. NDJango

  6. Hasic

  7. 抄网

  8. 贝尔维尤

  9. 夏普瓷砖

  10. string模板

  11. 永拍

  12. SharpDOM

目前大多数开发人员更喜欢使用Razor视图引擎,因为它提供了非常方便的编程方式。 所有这些视图引擎可能不支持ASP.NET MVC。

欲了解更多详情,你可以访问这篇文章 。

视图引擎在应用程序内工作,将HTML页面呈现给浏览器或用户。 它可以包含HTML标签,服务器控件和一些编程语言。

Razor是MVC4框架的首选视图引擎。

在ASP.Net MVC中,View引擎是一个在你的视图和浏览器之间工作的视图引擎,通过考虑你的视图提供的输出,为你的浏览器提供有效的HTML输出。视图引擎有很多种。

1)ASPX

2)剃刀

3)火花

4)NHaml

5)NDJango

6)Hasic

7)抄网

我读了http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net- MVC /

视图引擎能够将HTML从视图呈现给浏览器。

ASP.NET MVC支持很多视图引擎,但使用最广泛的视图引擎

  • Web窗体/ ASPX视图引擎。
  • 剃刀视图引擎。

Web表单视图引擎/ ASPX视图引擎:

  • Web窗体视图引擎/ ASPX视图引擎是Asp.net MVC项目的默认视图引擎。 它可以从MVC 1.0中获得
  • Web表单引擎的名称空间是Web.Mvc.WebFormViewEngine
  • 此查看引擎的文件扩展名与Web Form类似:

.aspx,就像Web Form页面一样。 .ascx,用于部分视图和编辑器模板,就像用户控件。 .master,对于布局和母版页,就像Web窗体中的母版页一样。

  • 不支持TDD(testing驱动开发)。
  • Web表单引擎不会阻止XSS攻击,意味着在呈现页面时会触发保存在数据库中的任何脚本
  • 语法:<%:Html.ActionLink(“Home”,“Index”)%>

Razor查看引擎:

  • Razor View Engine是一个先进的视图引擎,可用于MVC 3.0及更高版本
  • ASPX视图的命名空间Engine是Web.Razor。
  • 此视图引擎的文件扩展名是.cshtml(Razor C#),用于视图,部分视图,编辑器模板和布局页面。 .vbhtml(Razor VB.NET),视图,部分视图,编辑器模板和布局页面。
  • 支持TDD(testing驱动开发)。
  • 与Web表单引擎相比,Razor Engine稍微慢一些。
  • Razor引擎可以防止XSS攻击(跨站脚本攻击),它意味着它在呈现之前对脚本或html标记进行编码,例如<,>。
  • Razor语法比Web Form语法更易于理解和清理。 剃刀使用@符号使代码如下所示:

    @ Html.ActionLink(“Home”,“Index”)

View Engine将视图呈现为浏览器的HTML表单。 如果我们在.Net框架中讨论一个MVC应用程序,它支持以下2个视图引擎:

1. Razor View Engine 2. Web Form / ASPX View Engine

差异: 1. Razor View Engine使用Layouts,但ASPX视图引擎使用Master页面。

2. Razor视图引擎使用部分页面,但ASPX视图引擎使用Web用户控制。

3. Razor视图引擎不是一种语言,它是标记语法。

4. @符号用于Razor引擎来编写代码。 @ Html.ActionLink(“Login”,“LoginView”)'<%:'分隔符用作起始点,'%>'用作结束点。 您可以在ASPX引擎中编写它们之间的代码。

5. Razor视图引擎具有.cshtml(使用C#)和.vbhtml(使用VB)扩展视图,布局和部分视图。 ASPX视图引擎有一个类似的扩展,就像一个简单的Web应用程序,如.aspx的视图,UserControl的.acsx和Master Pages的.master。