Отправить массив значений в веб-сервис http через ajax и прочитать на веб-сервере asp.net
Мне просто интересно, как это сделать:
У меня есть страница, которая показывает некоторые табличные данные. В каждом ряду есть флажок. Пользователь выбирает два или более флажков; моя веб-страница должна найти соответствующие идентификаторы проверенных строк. Я должен отправить это на веб-сервис http. (в основном файл *.ashx). У меня есть два вопроса:
- как я получу доступ к этому на веб-сервере
- как мой веб-сервер узнает общее число? предметов, которые я передал. Должен ли я вручную отправить это на сервер в качестве параметра http post?
- Что делать, если данные, которые я отправляю, являются более сложными, как объект person, который имеет поля, такие как FirstName, LastName и т. д.?
Я знаю, что могу использовать веб-сервис asp.net или сервис wcf, предоставляющий доступ к данным. Но что является лучшим способом справиться с этим без затрат SOAP; Что делать, если вы отправляете все эти данные через AJAX как обычный HTTP-пост?
2 ответа
1. Как я получу доступ к этому на веб-сервере
Использование обратной передачи (и элемента управления checkboxlist) или обработка POST самостоятельно. GET не подходит для этой задачи.
2. Как мой веб-сервер узнает общее количество нет. предметов, которые я передал. Должен ли я вручную отправить это на сервер в качестве параметра http post?
Он отправит обратно значение каждого флажка, который у вас есть в форме, и даст вам общую сумму.
3. Что делать, если данные, которые я отправляю, являются более сложными, как объект person, который имеет поля, такие как FirstName, LastName и т. Д.
Вы можете использовать Viewstate для этого или просто собрать объекты на сервере. Как правило, это означает, что необходимо ввести идентификатор в значение флажка для человека, который представляет каждый флажок - вам не нужно отправлять обратно каждый фрагмент информации об объекте.
Каков наилучший способ справиться с этим без затрат SOAP; Что делать, если вы отправляете все эти данные через AJAX как обычный HTTP-пост?
jQuery и JSON были бы лучшим решением для этого, если вы хотите обойти встроенные элементы управления ajax ASP.NET. Как и предполагалось, jQuery - это самая простая библиотека Javascript для клиентской части задачи - вам нужно использовать $.post
http://jquery.malsup.com/form/, возможно, стоит изучить в качестве отправной точки.
Что касается ваших вопросов, ответы будут частично зависеть от того, используете ли вы MVC или WebForms. А вообще:
- Если вы используете вышеупомянутый плагин, вы получите к нему доступ так же, как и к обычной форме отправки (публикации).
- Они будут заполнены в Request.Form.
- Это не должно быть проблемой. Связывание моделей на MVC должно справиться с этим, я не уверен на 100% в эквиваленте на WebForms (вы всегда можете сделать это вручную).
Мое предложение будет игнорировать требование AJAX на данный момент. Получите его работу со стандартной формой отправки (POST). Затем вернитесь и интегрируйте вышеуказанный плагин, чтобы включить AJAX.