1

データベースから自分のページにコントロールを動的に追加し、 $.post() メソッドを使用してクライアント側で値を渡します。このコントロールを $.post() メソッドに渡したいと思います。ポストメソッドでこれらのコントロールを取得する方法を教えてください。

 $.post("TestPage.aspx", { Type: 'SaveData', drpGender: $('#MainContent_drpGender').val(), cmbMonth: $('#MainContent_cmbMonth').val(), cmbYear: $('#MainContent_cmbYear').val(), drpTall: $('#MainContent_drpTall').val(), txtWeight: $('#MainContent_txtWeight').val() }, function (data) {
                    alert(data);
                }, "html");

上記の drpGender、cmbMonth、drpTall、txtheigh は、ページに追加する動的コントロールです。

クライアント側では、SaveData() メソッドでデータを保存しています。そして、私はこのコントロール値クライアント側を使用して使用しています

Request.Form["drpGender"];

誰でもこれを行う方法を教えてもらえますか?

前もって感謝します。

4

1 に答える 1

1

Request.Formデータをフォームでエンコードされたデータとしてではなく、JSON オブジェクトとして手動でシリアライズしてコントローラーに送信しているため、Ajax 投稿にはデータが入力されません。

$.post で送信する前に、オブジェクトの URL エンコードを試してください。読みやすくするためにコードの一部を分割しました$.param()。必要に応じて、呼び出しをインラインで追加できます。

// Get your submit data.
var sendData = { Type: 'SaveData', drpGender: $('#MainContent_drpGender').val(), cmbMonth: $('#MainContent_cmbMonth').val(), cmbYear: $('#MainContent_cmbYear').val(), drpTall: $('#MainContent_drpTall').val(), txtWeight: $('#MainContent_txtWeight').val() };

// Form encode your data.
sendData = $.param(sendData);

// Send.
$.post("TestPage.aspx", sendData, function (data) {
                    alert(data);
                }, "html");

これにより、コントローラーは受信したリクエストを Form の post および populate のように処理しますRequest.Form

于 2013-03-12T15:36:31.513 に答える