Отправить массив значений в веб-сервис http через ajax и прочитать на веб-сервере asp.net

Мне просто интересно, как это сделать:

У меня есть страница, которая показывает некоторые табличные данные. В каждом ряду есть флажок. Пользователь выбирает два или более флажков; моя веб-страница должна найти соответствующие идентификаторы проверенных строк. Я должен отправить это на веб-сервис http. (в основном файл *.ashx). У меня есть два вопроса:

  1. как я получу доступ к этому на веб-сервере
  2. как мой веб-сервер узнает общее число? предметов, которые я передал. Должен ли я вручную отправить это на сервер в качестве параметра http post?
  3. Что делать, если данные, которые я отправляю, являются более сложными, как объект 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. А вообще:

  1. Если вы используете вышеупомянутый плагин, вы получите к нему доступ так же, как и к обычной форме отправки (публикации).
  2. Они будут заполнены в Request.Form.
  3. Это не должно быть проблемой. Связывание моделей на MVC должно справиться с этим, я не уверен на 100% в эквиваленте на WebForms (вы всегда можете сделать это вручную).

Мое предложение будет игнорировать требование AJAX на данный момент. Получите его работу со стандартной формой отправки (POST). Затем вернитесь и интегрируйте вышеуказанный плагин, чтобы включить AJAX.

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