程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET WebForm頁面內容輸出的細節分析

ASP.NET WebForm頁面內容輸出的細節分析

編輯:關於ASP.NET

老趙前日的這篇博文講的是有關ASP.NET WebForm頁面內容輸出方式的內容。盡管這個話題很老,不過 在ASP.NET MVC中同樣適用,而且適用的情況有增無減,因此十分重要。希望這篇文章能夠幫助你更好的 理解ASP.NET WebForm頁面內容輸出的細節。

這次我們談的話題是“WebForm頁面上輸出內容的方式”。這其實是一個非常舊的話題了,因為本文的 內容甚至可以運用於ASP.NET 1.1之上。不過這個話題的適用范圍很廣,因為即使是目前最新的ASP.NET MVC框架,它的默認視圖引擎依舊是基於ASP.NET WebForm的(如Page,Control,MasterPage)。甚至說 ,由於ASP.NET MVC框架的特性,我們會遇到更多在頁面上“直接輸出”內容的情況。因此,這個話題在 ASP.NET MVC應用中可能由為重要。

那麼就拿ASP.NET MVC舉例吧。假如,我們在頁面上生成一個Partial View,我們可以這麼做:

<
  % Html.RenderPartial("MyPartialView"); %
>

然而,在前一篇文章中我們提出了一個新的方法Partial,它返回一個字符串,它可以在頁面上這樣使 用:

<
  %= Html.Partial("MyPartialView") %
>

一個aspx頁面會被編譯成Page類的一個子類,這個子類的主要“功能”是覆蓋了基類的Render方法:

public

class
  MyPage : Page
{

protected

override

void
  Render(HtmlTextWriter writer)
     {
         ...
     }
}

我們平時在aspx頁面中編寫的大量內容,其實都會變成操作writer的代碼。例如使用writer.Write方 法輸出內容,或者把writer交給子控件的Render方法用於生成內容。那麼,以上兩種頁面上的標記分別又 是如何操作writer的呢?

<
  %= expression %
>

首先是< %= %>標記。< %= %>標記內包含的是一個“表達式”,因此它不能以分號結尾 。表達式內部的數據就會直接寫入writer。例如這樣的標記:

<
  %= DateTime.Now %
>

在編譯過後就成為:

writer.Write(DateTime.Now)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved