如何在asp.net中的$ .post方法中获取/传递动态控件?

时间:2012-04-20 08:29:49

标签: jquery asp.net ajax dynamic-controls request.form

我在数据库中动态添加控件,我使用$ .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"];

所以有人能告诉我怎么做吗?

提前致谢。

1 个答案:

答案 0 :(得分: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");

这将导致控制器将接收到的请求视为表单帖子并填充Request.Form