다음을 통해 공유


Button.PostBackUrl 속성

정의

Button 컨트롤을 클릭했을 때 현재 페이지에서 게시할 웹 페이지의 URL을 가져오거나 설정합니다.

public:
 virtual property System::String ^ PostBackUrl { System::String ^ get(); void set(System::String ^ value); };
[System.Web.UI.Themeable(false)]
public virtual string PostBackUrl { get; set; }
[<System.Web.UI.Themeable(false)>]
member this.PostBackUrl : string with get, set
Public Overridable Property PostBackUrl As String

속성 값

Button 컨트롤을 클릭했을 때 현재 페이지에서 게시할 웹 페이지의 URL입니다. 기본값은 빈 문자열("")이며, 이 경우 페이지가 자신에게 포스트백됩니다.

구현

특성

예제

다음 코드 예제를 사용 PostBackUrl 하는 방법에 설명 합니다 교차 페이지 게시물을 수행 하는 속성입니다. 사용자가 컨트롤을 Button 클릭하면 페이지에 입력란에 입력한 값이 속성으로 지정된 대상 페이지에 게시됩니다 PostBackUrl . 이 샘플을 실행하려면 이 코드 예제와 동일한 디렉터리에 대상 페이지에 대한 파일도 만들어야 합니다. 대상 페이지의 코드는 다음 예제에서 제공됩니다.

<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Example</title>
</head>
<body>    
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Example</h3>

    Enter a value to post:
    <asp:textbox id="TextBox1" 
      runat="Server">
    </asp:textbox>

    <br /><br />

    <asp:button id="Button1" 
      text="Post back to this page"
      runat="Server">
    </asp:button>

    <br /><br />

    <asp:button id="Button2"
      text="Post value to another page" 
      postbackurl="Button.PostBackUrlPage2cs.aspx" 
      runat="Server">
    </asp:button>

  </form>
</body>
</html>
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Example</title>
</head>
<body>    
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Example</h3>

    Enter a value to post:
    <asp:textbox id="TextBox1" 
      runat="Server">
    </asp:textbox>

    <br /><br />

    <asp:button id="Button1" 
      text="Post back to this page"
      runat="Server">
    </asp:button>

    <br /><br />

    <asp:button id="Button2"
      text="Post value to another page" 
      postbackurl="Button.PostBackUrlPage2vb.aspx" 
      runat="Server">
    </asp:button>

  </form>
</body>
</html>

다음 코드 예제를 사용 하는 방법에 설명 합니다 속성을 사용 하 여 Page.PreviousPagePostBackUrl 다른 페이지에서 게시 된 값에 액세스 하는 속성입니다. 이 페이지는 이전 페이지에서 게시한 문자열을 가져오고 사용자에게 표시합니다. 이 코드 예제를 직접 실행하려고 하면 필드 nulltext 이 이기 때문에 오류가 발생합니다. 대신 이 코드를 사용하여 대상 페이지를 만들고 파일을 이전 예제의 코드와 동일한 디렉터리에 배치합니다. 파일 이름은 이전 예제의 속성에 지정된 PostBackUrl 값에 해당해야 합니다. 이전 예제에 대한 코드를 실행하면 페이지 간 게시물이 발생할 때 이 페이지가 자동으로 실행됩니다.

중요

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  
  void Page_Load (object sender, System.EventArgs e)
  {
    string text;
    
    // Get the value of TextBox1 from the page that 
    // posted to this page.
    text = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
    
    // Check for an empty string.
    if (text != "")
      PostedLabel.Text = "The string posted from the previous page is "
                         + text + ".";
    else
      PostedLabel.Text = "An empty string was posted from the previous page.";
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Target Page Example</h3>
      
    <br />
    
    <asp:label id="PostedLabel"
       runat="Server">
    </asp:label>

    </form>
</body>
</html>
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Dim text As String
    
    ' Get the value of TextBox1 from the page that posted
    ' to this page.
    text = CType((PreviousPage.FindControl("TextBox1")), TextBox).Text
       
    ' Check for an empty string.
    If Not (text = "") Then
      PostedLabel.Text = "The string posted from the previous page is " _
                         & text & "."
    Else
      PostedLabel.Text = "An empty string was posted from the previous page."
    End If
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Target Page Example</h3>
       
    <br />
    
    <asp:label id="PostedLabel"
       runat="Server">
    </asp:label>

    </form>
</body>
</html>

설명

속성을 PostBackUrl 사용하면 컨트롤을 사용하여 페이지 간 게시물을 수행할 수 있습니다 Button .

참고

올바르게 지정된 경로만 이 속성에서 작동합니다. 예를 들어 상대 경로(Test/default.aspx), 절대 경로(https://localhost/WebApp/default.aspx) 및 가상()이~\Test\default.aspx 올바르게 작동합니다. "/Test/default.aspx" 또는 "\Test\default.aspx"와 같은 잘못된 형식의 경로는 작동하지 않습니다. 올바른 경로를 만드는 방법에 대한 자세한 내용은 ASP.NET 웹 프로젝트 경로를 참조하세요.

컨트롤을 PostBackUrl 클릭할 때 게시할 웹 페이지의 URL로 Button 속성을 설정합니다. 예를 들어 를 지정하면 Page2.aspx 컨트롤이 포함된 Button 페이지가 에 게시됩니다 Page2.aspx. 속성에 대한 PostBackUrl 값을 지정하지 않으면 페이지가 자체에 다시 게시됩니다.

중요

서버 쪽 유효성 검사를 사용하여 컨트롤을 사용하여 페이지 간 포스트백을 수행하는 경우 포스트백을 처리하기 전에 페이지의 IsValid 속성이 true 있는지 확인해야 합니다. 교차 페이지 포스트백의 경우 확인할 페이지는 입니다 PreviousPage. 다음 VB 코드는 이 작업을 수행하는 방법을 보여줍니다.

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.PreviousPage.IsValid Then
            ' Handle the post back
        Else
            Response.Write("Invalid")
        End If
End Sub

교차 페이지 게시 기술에 대한 자세한 내용은 ASP.NET Web Forms의 페이지 간 게시를 참조하세요.

이 속성은 테마 또는 스타일시트 테마에 의해 설정될 수 없습니다. 자세한 내용은 ThemeableAttribute 하 고 ASP.NET 테마 및 스킨합니다.

적용 대상

추가 정보