49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|||||||||||
1 | |||||||||||
Очистка элементов формы после пост запроса02.10.2013, 18:08. Показов 6000. Ответов 14
Метки нет (Все метки)
Всем привет!
Ребят подскажите пж, когда я делаю пост запрос и в контролере опять возвращаюсь на прежнюю страницу, то все мои контролы заполнены прежними данными. Как убрать данные? Но на другую страницу редиректиться мне не нужно, так как нужно сообщение пользователю показать:
если стоит - return View(); то возвращается форма с заполненными ранее контролами, как у топикстартера, если сделать как советовали - RedirectToAction("Index", "Home"); то все ок, но я человека не уведомляю о том успешно или не успешно все прошло....
0
|
02.10.2013, 18:08 | |
Ответы с готовыми решениями:
14
Сервер закрывает соединение после пост запроса Обработка ответа после пост-запроса (Ajax) Записать данные из пост-запроса в БД sql после нажатия кнопки Очистка формы после отправки |
02.10.2013, 21:56 | 2 | |||||
Можно так:
@Html.TextBox("Name",string.Empty) Совет на будущие, если Вы используете этот код в рамках работы, то я бы посоветовал уйти от ViewBug и переделать это на типизированную модель и пользоваться asp.net mvc binding ( вот почитайте ) Добавлено через 6 минут Если смотреть на задачу более реально ( как бы я её сделал ) , то Вам бы <input onclick="myJsFunction" /> хватило бы. Само собой в функции, надо написать:
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|||||||||||
03.10.2013, 11:54 [ТС] | 3 | ||||||||||
спасибо, понимаю.
myJsFunction --- я так понимаю так можно валидировать корректность заполнения форм и простеньких капч...? Добавлено через 10 минут хотя валидацию наверно лучше аяксом делать... Добавлено через 17 минут чет не работает
как прекратить выполнение пост запроса если не пройдена капча... ведь не зависимо правильно или не правильно ответил пост запрос все равно выполниться....
0
|
03.10.2013, 13:24 | 4 | |||||
Смотрите , что бы использовать JS, надо подвязаться под событие Click у button ( или можно имя функции передать в атрибут onclick="myJsFunction" )
Но я так понимаю, Вы хотите построить валидацию формы, тогда Вам не подойдет JavaScript ( его можно просто выключить и валидации не будет ). Если нужна Captcha то могу посоветовать Mvc ReCaptcha , потому что делать свой вариант - это не лучшая затея. Если Вам надо просто, показать макет и не важна безопасность и т.д , то можно заюзать JS.
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
||||||
03.10.2013, 13:33 [ТС] | 5 | |||||
да, я так и сделал:
спасибо, не знал такой бреши. А как же валидируют инпуты аяксом? Или валидация валидацией а капча (безопасность) отдельно?
0
|
03.10.2013, 13:59 | 6 |
Вся валидация должна быть обязательно на сервере ( куда ни кому не попасть ) и пожеланию дублирована на клиента. Опираясь на свой опыт , могу посоветовать fluent validation , он на сервере, а так же может через jquery.validation использоватся на клиенте, очень удобно. По мне лучше чем DataAnonnotation из стандартного набора asp.net mvc
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|
03.10.2013, 14:31 [ТС] | 7 |
блин все равно не так как надо, хотел по быстрому сделать:
слова подтверждения через вьюбег - ViewBag.Thanks = "Спасибо! Заявка отправлена. В течении нескольких минут вам придет инструкция на указанный e-mail"; и если так: RedirectToAction("Contact", "Home"); то инпуты очищаются, но вьюбег похоже очищается и тишина... а если так: return View(); то пользователь через вьюбег получает подтверждение.... но инпуты не очищаются
0
|
03.10.2013, 14:35 | 8 |
Оставьте в обработчики для Input только $('[name="Capcha"]').val('');. Дело в том, что TextBox может построить только name="Capcha" , но не проставить Id и тогда Jquery не найдет Ваш textbox.
У Вас обработчик срабатывает ? Попробуйте на onsubmit повесить, а не на onclick, потому что у Вас input type="submit" , а не button
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|
03.10.2013, 14:50 [ТС] | 9 |
я думал без скрипта сделать, раз он не годиться в плане безопасности.
попробовал: Html.TextBox("Capcha", string.Empty) ... <td style="text-align: right;"><input onclick="JsFunctionCapchaCheck" type="submit" name="operation" value="Отправить" /></td></tr></tbody></table> .... <script type="text/javascript"> function JsFunctionCapchaCheck() { alert('проверка'); if ($('[name="Capcha"]').val('Москва')) { alert('Спасибо! Заявка отправлена. В течении нескольких минут вам придет инструкция на указанный e-mail'); } else { event.preventDefault(); alert('Вы не прошли защиту от спама, ответ - Николаев. Попробуйте еще раз...'); } } </script> Дело в том, что я в функции не захожу даже... alert('проверка'); - не показывается.
0
|
03.10.2013, 15:29 | 10 | |||||
Ок, давай вернем твой первый код и тогда его не много модернизируй
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|
03.10.2013, 15:46 [ТС] | 11 |
да, так очищается наконец-то, спасибо.
А почему я все таки не вхожу в функцию в ответе Очистка элементов формы после пост запроса синтаксис вродь правильный
0
|
6 / 6 / 0
Регистрация: 29.07.2013
Сообщений: 55
|
|
03.10.2013, 19:19 | 13 |
по поводу первоначального вопроса - что если в экшн перед ретурн вставить ModelState.Clear(); - тож инпут поля не очищаются?
1
|
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
|
|
04.10.2013, 09:52 [ТС] | 14 |
0
|
6 / 6 / 0
Регистрация: 29.07.2013
Сообщений: 55
|
|
04.10.2013, 11:55 | 15 |
ModelState - это свойство контроллера(как и метод View..), его название - то личное дело микрософта. довольно полезное, особенно если постить формы.
0
|
04.10.2013, 11:55 | |
04.10.2013, 11:55 | |
Помогаю со студенческими работами здесь
15
Очистка формы после отправки данных Очистка формы после перезагрузки страницы Очистка поля формы, после отправки Очистка полей после отправки формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |