Page.VerifyRenderingInServerForm(Control) Page.VerifyRenderingInServerForm(Control) Page.VerifyRenderingInServerForm(Control) Method

定義

実行時に、指定された ASP.NET サーバー コントロールに HtmlForm コントロールが表示されることを確認します。Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.

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

パラメーター

control
Control Control Control

HtmlForm コントロール内に配置する必要がある ASP.NET サーバー コントロール。The ASP.NET server control that is required in the HtmlForm control.

例外

実行時に、指定されたサーバー コントロールが HtmlForm サーバー コントロールの開始タグと終了タグの間に含まれていません。The specified server control is not contained between the opening and closing tags of the HtmlForm server control at run time.

検証するコントロールが null です。The control to verify is null.

次のコード例ではPage.Render 、カスタムサーバーコントロールのメソッドをオーバーライドします。The following code example overrides the Page.Render method of a custom server control. このコントロールがページにコンテンツを書き込むときは、 VerifyRenderingInServerFormメソッドを使用して、コントロールHtmlFormの開始タグと終了タグの間にコントロールが確実に表示されるようにします。When this control writes its content to a page, it uses the VerifyRenderingInServerForm method to make sure that the control appears between the opening and closing tags of an HtmlForm control.

// 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>に配置する必要があるコントロールは、レンダリングする前にこのメソッドを呼び出すことができるため、タグの外側に配置されている場合はエラーメッセージが表示されます。Controls that are required to be inside <form runat=server> tags can call this method before they render so that an error message is shown if they are placed outside the tags. ポストバックまたは登録されたスクリプトブロックに依存するコントロールは、 Control.Renderメソッドのオーバーライドでこのメソッドを呼び出す必要があります。Controls that post back or depend on registered script blocks should call this method in an override of the Control.Render method. サーバーフォーム要素を表示する方法が異なるページでは、このメソッドをオーバーライドして、異なる条件で例外をスローすることができます。Pages that have a different way of rendering the server form element can override this method to throw an exception under different conditions.

クライアント側スクリプトをポストバックまたは使用するサーバーコントロールは、 HtmlFormサーバーコントロール (<form runat="server">) タグで囲まれていないと機能しません。Server controls that post back or use client-side script will not work if they are not enclosed in the HtmlForm server control (<form runat="server">) tags. これらのコントロールは、レンダリング時にこのメソッドを呼び出してHtmlForm 、コントロールで囲まれていないときに明確なエラーメッセージを提供できます。These controls can call this method when they render to provide a clear error message when they are not enclosed in the HtmlForm control.

カスタムサーバーコントロールを開発する場合は、任意の種類の入力タグに対してRenderメソッドをオーバーライドするときに、このメソッドを呼び出すのが一般的です。When you develop a custom server control, it is common to call this method when you override the Render method for any kind of input tag. これは、入力コントロールがを呼び出すGetPostBackEventReference場合、またはクライアントスクリプトを出力する場合に特に重要です。This is particularly important if the input control calls GetPostBackEventReference, or if it emits client script. 複合サーバーコントロールは、この呼び出しを行う必要はありません。A composite server control does not need to make this call.

適用対象