Page.VerifyRenderingInServerForm(Control) 方法

定义

确认在运行时为指定的 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 服务器控件。

例外

指定的服务器控件在运行时不包含在 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,或者它发出客户端脚本,则这一点尤其重要。 复合服务器控件不需要进行此调用。

适用于