asp.net Пост / Запрос / Получить вопрос о валидации
Я пытаюсь найти логичный и быстрый способ реализации стиля дизайна "PRG" на небольшом сайте, который я делаю, и я нахожу проблему, которую не могу придумать, как найти хороший способ ее решения.
У меня есть форма. Имеет 2 поля (имя и фамилия). Когда пользователь отправляет форму, я проверяю, чтобы убедиться, что в них есть данные, прежде чем я сохраню их в базе данных. Если они этого не делают, то я показываю им приятное маленькое сообщение об ошибке и оставляю то, что они ввели, в форме.
Однако, чтобы правильно реализовать PRG, насколько я понимаю, мне нужно будет проверить при обратной передаче, определить, есть ли ошибка, а затем перенаправить пользователя на ту же страницу, но через get, а не post, что затем устранит любой вид страшное сообщение "вы собираетесь повторно отправить содержимое формы на сервер, что может иметь непредвиденные последствия..." и т. д., если пользователь перезагрузил страницу.
Как я могу перенаправить пользователя обратно на ту же страницу и при этом сохранить уже введенные значения в полях формы?
Я имею в виду, что я мог бы передать все значения в строке запросов, но для сложных форм это стало бы очень сложным и грязным. Я мог бы хранить значения в Session, но это все равно было бы грязно, и это хороший способ поставить веб-сервер на колени на загруженном сайте.
Что вы, мои коллеги-веб-программисты, делаете?
1 ответ
Как вы заметили, при перенаправлении вы потеряете введенные ими данные, если не пройдете несколько циклов QueryString. Делая это, вы действительно побеждаете одну из замечательных возможностей asp.net - все значения форм сохраняются для вас, поэтому, если вам необходимо повторно отобразить страницу после сообщения с ошибками, большая часть работы сделана за вас. Почему вы хотите использовать дизайн PRG? Какую выгоду вы ожидаете получить от стандартной обработки формы asp.net?