Button.PostBackUrl Button.PostBackUrl Button.PostBackUrl Button.PostBackUrl Property

定義

Button コントロールがクリックされたときに現在のページからのポスト先となるページの URL を取得または設定します。Gets or sets the URL of the page to post to from the current page when the Button control is clicked.

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; }
member this.PostBackUrl : string with get, set
Public Overridable Property PostBackUrl As String

プロパティ値

Button コントロールがクリックされたときに現在のページからのポスト先となる Web ページの URL。The URL of the Web page to post to from the current page when the Button control is clicked. 既定値は空の文字列 ("") です。この場合、ページはそのページ自体にポストバックされます。The default value is an empty string (""), which causes the page to post back to itself.

実装

次のコード例は、使用する方法を示します、PostBackUrlプロパティ ページの間のポストバックを実行します。The following code example demonstrates how to use the PostBackUrl property to perform a cross-page post. ユーザーがクリックすると、Buttonコントロール、ページの投稿で指定されたターゲット ページにテキスト ボックスに入力された値、PostBackUrlプロパティ。When the user clicks the Button control, the page posts the value entered in the text box to the target page specified by the PostBackUrl property. このサンプルを実行するには、は、このコード例と同じディレクトリにもターゲット ページのファイルを作成する必要があります。To run this sample, you must also create a file for the target page in the same directory as this code example. ターゲット ページのコードは、次の例で提供されます。The code for target page is provided in the next example.

<%@ 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.PreviousPageから別のページを使用して送信された値にアクセスするプロパティ、PostBackUrlプロパティ。The following code example demonstrates how to use the Page.PreviousPage property to access a value that was posted from another page using the PostBackUrl property. このページは、ユーザーに表示されますが、前のページから投稿された文字列を取得します。This page gets the string that was posted from the previous page and displays it to the user. に、エラーが発生直接このコード例を実行しようとした場合の値、textフィールドnullします。If you attempt to run this code example directly, you will get an error because the value of the text field will be null. ターゲット ページを作成し、前の例のコードと同じディレクトリにファイルを配置する代わりに、このコードを使用します。Instead, use this code to create a target page and place the file in the same directory as the code for the previous example. ファイルの名前が指定された値に対応する必要があります、PostBackUrl前の例のプロパティ。The name of the file must correspond to the value specified for the PostBackUrl property in the previous example. 前の例のコードを実行するときにこのページは自動的に実行ページ間のポストが発生した場合。When you run the code for the previous example, this page will execute automatically when the cross page post occurs.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。This example has a text box that accepts user input, which is a potential security threat. 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 詳細については、「スクリプトによる攻略の概要」を参照してください。For more information, see 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プロパティでは、post を使用してクロス ページを実行することができます、Buttonコントロール。The PostBackUrl property allows you to perform a cross-page post using the Button control.

注意

このプロパティでのみ正しく指定したパスが動作します。Only correctly specified paths work with this property. たとえば、相対パス (Test/default.aspx) 絶対パス (https://localhost/WebApp/default.aspx)と仮想 (~ \Test\default.aspx) 正常に動作します。For example, relative paths (Test/default.aspx), absolute paths (https://localhost/WebApp/default.aspx) and virtual (~\Test\default.aspx) work correctly. 正しく形成がないパスがなど"/Test/default.aspx"または"\Test\default.aspx"が動作しません。Incorrectly formed paths such as "/Test/default.aspx" or "\Test\default.aspx" do not work. 参照してくださいASP.NET Web プロジェクト パスの正しいパスを作成する方法について説明します。See ASP.NET Web Project Paths for a discussion on creating correct paths.

設定、PostBackUrlプロパティに投稿するときに、Web ページの URL をButtonコントロールがクリックされました。Set the PostBackUrl property to the URL of the Web page to post to when the Button control is clicked. たとえば、指定するPage2.aspxが含まれるページと、Buttonに投稿するコントロールPage2.aspxFor example, specifying Page2.aspx causes the page that contains the Button control to post to Page2.aspx. 値を指定しない場合、PostBackUrl自体にプロパティ ページのポストバックします。If you do not specify a value for the PostBackUrl property, the page posts back to itself.

重要

サーバー側の検証コントロールと、ページ間ポストバックを実行するときに、いることを確認する必要があります、ページのIsValidプロパティはtrueポストバックを処理する前にします。When performing a cross-page postback with controls with server-side validation, you should check that the page's IsValid property is true before processing the postback. 確認するためのページは、ページ間のポストバックの場合、PreviousPageします。In the case of a cross-page postback, the page to check is the PreviousPage. 次の VB コードでは、これを行う方法を示しています。The following VB code shows how this is done:

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 フォームでのページ間ポスティングします。For more information on cross-page posting techniques, see Cross-Page Posting in ASP.NET Web Forms.

このプロパティは、テーマまたはスタイル シート テーマによって設定することはできません。This property cannot be set by themes or style sheet themes. 詳細については、次を参照してください。ThemeableAttributeASP.NET のテーマとスキンします。For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

適用対象

こちらもご覧ください