ASP.NET WP – 查看引擎

ASP.NET WP – 查看引擎


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

  • ASPX 视图引擎也称为 Web 表单视图引擎和

  • 剃刀视图引擎

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

ASPX 视图引擎

ASPX 或 Web 窗体引擎是 ASP.NET 的默认视图引擎,从一开始就包含在 ASP.NET MVC 中。

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

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

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

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

  • 默认情况下,ASPX 视图引擎不采取任何措施来避免跨站点脚本攻击。

  • ASPX 视图引擎比 Razor 视图引擎相对更快。

剃刀视图引擎

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

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

  • Razor 语法还支持 Visual Basic 语言,我们将使用 C# 执行的所有操作都可以在 Visual Basic 中执行。

  • Razor 引擎的命名空间是System.Web.Razor

  • Razor 使用“@”字符而不是 ASPX 视图引擎使用的“<% %>”。

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

  • 默认情况下,Razor 视图引擎在将 html 标签或脚本呈现给视图之前对其进行编码,以避免跨站点脚本攻击。

  • 与 ASPX 视图引擎相比,Razor 视图引擎速度较慢。

语法差异

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

<%foreach (var student in Students){ %>
   
   <% if (student.IsPassed){ %>
      <% = student.FirstName%> is going to next grade.
   <% } else{ %>
      <% = student. FirstName %> 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 等可视化编辑器的支持。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁