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 中调用此方法。 具有不同方式呈现服务器窗体元素的页面可以重写此方法,以在不同条件下引发异常。

如果服务器控件未包含在服务器控件 (HtmlForm<) 标记中form runat="server">,则回发或使用客户端脚本的服务器控件将不起作用。 这些控件在呈现时可以调用此方法,以便在控件中未包含在控件中 HtmlForm 时提供明确的错误消息。

开发自定义服务器控件时,在重写 Render 任何类型的输入标记的方法时,通常调用此方法。 如果输入控件调用 GetPostBackEventReference,或者发出客户端脚本,则这一点尤其重要。 复合服务器控件不需要进行此调用。

适用于