📜  ASP.NET WP-视图引擎

📅  最后修改于: 2020-11-21 05:27:14             🧑  作者: Mango


ASP.NET中的View Engine用于将视图转换为HTML,然后将其呈现给浏览器。默认情况下,ASP.Net支持ASPXRazor View Engine 。视图引擎模板的语法与实现不同。在本章中,我们将讨论两个最重要的视图引擎-

  • ASPX View Engine也称为Web Form View Engine和

  • 剃刀视图引擎

还有更多的第三方视图引擎,例如Spark,Nhaml等。

ASPX视图引擎

ASPX或Web表单引擎是ASP.NET的默认视图引擎,ASP.NET MVC从一开始就包含它。

  • 使用ASPX View Engine编写视图的语法与ASP.NET Web表单中使用的语法相同。

  • 文件扩展名也与ASP.NET Web表单(例如.aspx,.ascx,.master)相同。

  • ASPX使用“ <%=%>”或“ <%:%>”来呈现服务器端内容。

  • Webform Engine的名称空间是System.Web.Mvc.WebFormViewEngine

  • 默认情况下,ASPX View Engine不会采取任何措施来避免跨站点脚本攻击。

  • ASPX View Engine相对比Razor View Engine快。

剃刀视图引擎

Razor Engine是MVC3引入的高级视图引擎。它不是新语言,而是新的标记语法。

  • Razor语法基于C#编程语言。

  • Razor语法还支持Visual Basic语言,并且我们将使用C#进行的所有操作,您也可以在Visual Basic中完成所有这些操作。

  • Razor Engine的名称空间是System.Web.Razor

  • Razor使用“ @”字符代替ASPX View Engine使用的“ <%%>”。

  • 对于C#语言,Razor文件扩展名是“ cshtml”。

  • 默认情况下,Razor View Engine在呈现之前进行编码以对HTML标记或脚本进行编码,从而避免跨站脚本攻击。

  • 与ASPX View Engine相比,Razor View Engine速度较慢。

语法差异

为了理解语法上的差异,让我们看一个用ASPX和Razor视图引擎编写的简单示例。以下是ASPX视图引擎的代码片段。

is going to next grade.
   
       is not going to next grade.
   


以下是用Razor View引擎编写的相同示例代码。

@foreach (var student in Students){
   @if(student.IsPassed){
      @student. FirstName is going to next grade.
   } else {
      @student. FirstName is not going to next grade.
   }
}

如果同时看一下用ASPX和Razor语法编写的上述代码片段,则可以很清楚地看到,与ASPX语法相比,Razor语法更干净,更简单。 Razor的缺点之一是,Dream Viewer之类的可视编辑器不支持它。