Как сохранить данные AJAX после POST с ограниченными AJAX-запросами - PullRequest
0 голосов
/ 04 июня 2011

Я использую C # с .NET 4 (хотя в соответствии с политикой компании мы никогда не используем какие-либо элементы управления ASP, только входы HTML, поэтому наши страницы не сильно отличаются от Rails или PHP-страниц).

На моей странице требуется выполнить несколько запросов AJAX для заполнения нескольких <select> на основе значений в других входных данных в форме.AJAX-запросы просто переходят на простые страницы ASPX, которые возвращают <option>, извлеченные из базы данных.Когда пользователь отправляет форму, и она проходит некоторую проверку и терпит неудачу, я хочу сохранить значения в своих входных данных.В настоящее время я делаю в своей функции page_load сохранение всех значений формы запроса POST в объекте, а затем повторно выбираю их на странице.Проблема в том, что мне нужно перезапускать все мои AJAX-запросы при загрузке страницы, чтобы я мог заполнить <select> для повторного выбора того, что пользователь отправил на пост.нежелательно делать так много запросов AJAX, как только страница перезагрузится после POST.Есть ли лучший способ сохранить все <option>, чтобы мне не приходилось делать все эти AJAX-вызовы после перезагрузки страницы?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2013

У меня тоже была такая же проблема. Решение, которое сработало для меня, заключалось в следующем: чтобы сделать viewstate равным true для страницы, если не для страницы, мы можем сделать то же самое только для элементов управления списком. Тогда даже если произойдет какая-либо ошибка на стороне сервера, элементы управления списком сохранят свои значения.

Другое решение той же проблемы:

Всякий раз, когда приходит ответ ajax, мы можем сохранить его в скрытом вводе (как обсуждалось выше), но нам не нужно иметь слишком много скрытых входов для одного и того же, его можно обработать, используя только 1 скрытую переменную ввода. Всякий раз, когда приходит ответ ajax, нам нужно добавить значение того же скрытого поля ввода (для дифференциации нам нужно добавить имя списка в этом значении), тогда мы можем легко связать элементы управления без повторной отправки вызовов ajax.

0 голосов
/ 04 июня 2011

Как насчет сохранения значений параметров в скрытом вводе перед публикацией, чтобы, если опубликованная форма не прошла проверку на стороне сервера, вы могли иметь данные параметров в объекте Request.Form и могли повторно заполнятьуправление на сервере с этими значениями и использование некоторого условия if () для предотвращения использования функций AJAX на возвращаемой странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...