Page.VerifyRenderingInServerForm(Control) 方法

定義

確認在 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)

參數

control
Control

HtmlForm 控制項中的必要 ASP.NET 伺服器控制項。

例外狀況

指定的伺服器控制項在 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 ,或發出用戶端腳本,這特別重要。 複合伺服器控制項不需要進行此呼叫。

適用於