我在数据库中动态添加控件,我使用$ .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"];
所以有人能告诉我怎么做吗?
提前致谢。
答案 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
。