Page.VerifyRenderingInServerForm(Control) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
確認在 Run Time 時期呈現了所指定 ASP.NET 伺服器控制項的 HtmlForm 控制項。
public:
virtual void VerifyRenderingInServerForm(System::Web::UI::Control ^ control);
public virtual void VerifyRenderingInServerForm (System.Web.UI.Control control);
abstract member VerifyRenderingInServerForm : System.Web.UI.Control -> unit
override this.VerifyRenderingInServerForm : System.Web.UI.Control -> unit
Public Overridable Sub VerifyRenderingInServerForm (control As Control)
參數
例外狀況
指定的伺服器控制項在 Run Time 時期並不包含於 HtmlForm 伺服器控制項的開頭和結尾標記之間。
要驗證的控制項為 null
。
範例
下列程式碼範例會 Page.Render 覆寫自訂伺服器控制項的 方法。 當這個控制項將內容寫入頁面時,它會使用 VerifyRenderingInServerForm 方法來確保控制項出現在控制項的 HtmlForm 開頭和結束記號之間。
// Override the Render method to ensure that this control
// is nested in an HtmlForm server control, between a <form runat=server>
// opening tag and a </form> closing tag.
protected override void Render(HtmlTextWriter writer) {
// Ensure that the control is nested in a server form.
if (Page != null) {
Page.VerifyRenderingInServerForm(this);
}
base.Render(writer);
}
' Override the Render method to ensure that this control
' is nested in an HtmlForm server control, between a <form runat=server>
' opening tag and a </form> closing tag.
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
' Ensure that the control is nested in a server form.
If Not (Page Is Nothing) Then
Page.VerifyRenderingInServerForm(Me)
End If
MyBase.Render(writer)
End Sub
備註
標籤內 <form runat=server>
所需的控制項可以在轉譯之前呼叫此方法,以便在標記外部放置錯誤訊息時顯示。 回傳或相依于已註冊腳本區塊的控制項應該在 方法的 Control.Render 覆寫中呼叫此方法。 以不同方式轉譯伺服器表單元素的頁面可以覆寫這個方法,以在不同的條件下擲回例外狀況。
如果伺服器控制項未包含在伺服器控制項 (<form runat="server">
) 標記中 HtmlForm ,則回傳或使用用戶端腳本的伺服器控制項將無法運作。 這些控制項可以在轉譯時呼叫這個方法,以在控制項中未括住 HtmlForm 時提供清楚的錯誤訊息。
當您開發自訂伺服器控制項時,當您針對任何類型的輸入標記覆寫 Render
方法時,通常會呼叫此方法。 如果輸入控制項呼叫 GetPostBackEventReference ,或發出用戶端腳本,這特別重要。 複合伺服器控制項不需要進行此呼叫。