0

JQuery または JavaScript を使用して、クライアント側の .aspx Web ページから単純な値をサーバー側のコード ビハインド (C#) に送信したいと考えています。このデータから、いくつかの asp.net ラベルを作成したいと考えています。

問題は、サーバーでデータを取得することはできますが、スレッドがコード ビハインド メソッドを離れるとすぐに、値の割り当てが即座に失われることです。なんで?そして、どうすればそれを防ぐことができますか?高度な感謝。

これは私がこれまでに持っているものです...

ContentPlaceHolderID="head" タグ内のクライアント側 (MyWebPage.aspx はマスターページ内):

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
  <script>
    $.post("MyWebPage.aspx",
      {
         myKey:"Hello World"
      },
     function () {});
   </script>
</asp:Content>

サーバー側 .cs

Page_Load(
      if (Request.Params["myKey"] != null)
      {
          if (Request.Params["myKey"] == "Hello World")
             {
                 Label1.Text = "Hello World";
                 Label2.Text = Request.Params["myKey"].ToString();
                 HiddenField.Value = "Hello World";
                 // All values are assigned here, but...
             } 
      }    
);

ページが表示されます。上記の割り当てられた値はすべて失われます:-(なぜ???

4

1 に答える 1

1

AJAX 呼び出しは非同期要求をサーバーに送信し、サーバーは要求を処理して応答を返します。その後、その応答で何かを行うことが期待されますが、そうではありません。空のコールバック関数を に渡したから$.post()です。

サーバーから返されたものは、魔法のようにページに配置されるわけではありません。これは AJAX の仕組みではありません。自分で行う必要があります (または、それを行う jQuery 関数を使用.load()ます)。

$.post("MyWebPage.aspx", {
     myKey:"Hello World"
}, function (responseText) {
    // do something with responseText here
});
于 2013-03-07T16:53:11.883 に答える