다음을 통해 공유


Page.VerifyRenderingInServerForm(Control) 메서드

정의

HtmlForm 컨트롤이 런타임에 지정된 ASP.NET 서버 컨트롤에 렌더링되는지 여부를 확인합니다.

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 호출해야 합니다. 서버 양식 요소를 렌더링하는 다른 방법이 있는 페이지는 이 메서드를 재정의하여 다른 조건에서 예외를 throw할 수 있습니다.

서버 컨트롤(<form runat="server">) 태그에 HtmlForm 묶이지 않으면 클라이언트 쪽 스크립트를 게시하거나 사용하는 서버 컨트롤이 작동하지 않습니다. 이러한 컨트롤은 컨트롤에 묶이지 않은 경우 명확한 오류 메시지를 제공하기 위해 렌더링할 때 이 메서드를 HtmlForm 호출할 수 있습니다.

사용자 지정 서버 컨트롤을 개발하는 경우 모든 종류의 입력 태그에 대해 메서드를 재정 Render 의할 때 이 메서드를 호출하는 것이 일반적입니다. 이는 입력 컨트롤이 호출 GetPostBackEventReference하거나 클라이언트 스크립트를 내보내는 경우에 특히 중요합니다. 복합 서버 컨트롤은 이 호출을 수행할 필요가 없습니다.

적용 대상