Как получить / передать динамические элементы управления в методе $.post в asp.net?

Я динамически добавляю элементы управления на мою страницу из базы данных и использую метод $.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 ответ

Решение

Request.Form не заполняет вашу запись Ajax, потому что вы вручную сериализуете и отправляете данные в контроллер как объект JSON, а не как данные, закодированные в форме.

Попробуйте URL-кодировку вашего объекта перед отправкой с помощью $.post. Я разделил часть кода для удобства чтения - вы можете просто добавить $.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,

Другие вопросы по тегам