2017-04-17 25 views
0

直到最近我還以爲ASP.Net視圖是文件(如.aspx或.cshtml),它們可以包含一些.Net代碼,並用視圖引擎(如剃鬚刀或aspx)解析成HTML文件,併發送到客戶端的瀏覽器。後來我發現這些視圖實際上被轉換成了從System.Web.Mvc.WebViewPage類派生的類。除此之外,我注意到有些人把自己的觀點稱爲類。所以我的問題是WebViewPage類如何在ASP.Net MVC中轉換爲html?

  1. 如果視圖被解析成一個類,那麼這個類如何呈現一個html文檔?
  2. 是否公平地說ASP.NET中的視圖本身是類,還是更像是某種基於視圖引擎形成實際類的腳本?

回答

1

有關剃刀視圖過程如何工作的很好的描述可以參見here

基本上,視圖文件,在這種情況下,cshtml首先在該給定頁面的第一個請求上轉換爲C#代碼文件。創建的類基本上將cshtml的所有非C#部分轉換爲C#。大多數情況下,它只是將HTML文字寫爲視圖的Execute方法中的響應。

您還可以看到生成的C#類使用#line指令來標記原始csproj文件的行,以便您可以使用調試器逐步瀏覽原始代碼並查看拋出異常的位置。

所以,視圖基本上是類(至少在它們第一次被訪問後,它們成爲類),並且渲染是由將視圖的Execute方法內的HTML文字寫入響應流引起的。

相關問題