Page.VerifyRenderingInServerForm(Control) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
确认在运行时为指定的 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)
参数
例外
指定的服务器控件在运行时不包含在 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,或者它发出客户端脚本,则这一点尤其重要。 复合服务器控件不需要进行此调用。