ASP.NET WP - 檢視引擎



ASP.NET 中的檢視引擎用於將我們的檢視轉換為 HTML,然後將其呈現到瀏覽器。預設情況下,ASP.Net 支援ASPXRazor 檢視引擎。檢視引擎模板的語法與實現不同。在本章中,我們將討論兩個最重要的檢視引擎,它們是:

  • ASPX 檢視引擎,也稱為 Web 窗體檢視引擎,以及

  • Razor 檢視引擎

還有許多其他第三方檢視引擎,例如Spark、Nhaml 等。

ASPX 檢視引擎

ASPX 或 Web 窗體引擎是 ASP.NET 的預設檢視引擎,從一開始就包含在 ASP.NET MVC 中。

  • 使用 ASPX 檢視引擎編寫檢視的語法與 ASP.NET Web 窗體中使用的語法相同。

  • 副檔名也與 ASP.NET Web 窗體相同(例如 .aspx、.ascx、.master)。

  • ASPX 使用“<% = %>” 或“<% : %>” 呈現伺服器端內容。

  • Web 窗體引擎的名稱空間是System.Web.Mvc.WebFormViewEngine

  • ASPX 檢視引擎預設情況下不會做任何事情來避免跨站點指令碼攻擊。

  • 與 Razor 檢視引擎相比,ASPX 檢視引擎速度更快。

Razor 檢視引擎

Razor 引擎是一個高階檢視引擎,它是在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 檢視引擎編寫的相同示例程式碼。

@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 等視覺化編輯器的支援。

廣告

© . All rights reserved.