1

我从数据库中动态地在我的页面中添加控件,并且我正在使用 $.post() 方法在客户端传递值。现在我想在 $.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不会为您的 Ajax 帖子填充,因为您正在手动序列化数据并将其作为 JSON 对象发送到控制器,而不是作为表单编码数据。

在使用 $.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 回答