|
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
|
|||||||||||
Обработка данных в представлении функцией(методом)02.06.2021, 16:20. Показов 6855. Ответов 9
Метки нет (Все метки)
Добрый день! Даже не знаю, правильно ли я заголовок задала, попробую описать ситуацию.
Я пытаюсь реализовать регистрацию пользователя. Мне нужно сделать проверку: если введенная электронная почта уже есть в БД, то система должна уведомить об этом пользователя и попросить ввести другую, если почты нет в базе - данные о пользователе заносятся в БД. Как у меня сейчас это работает: проверка почты происходит в контроллере, но это не совсем верно, поскольку, если запись в бд найдена, то снова открывается представление для регистрации , и, конечно же, все введенные данные теряются. Я думаю, что было бы лучше, если наличие записи в БД проверялось бы в самом представлении. У меня есть такая задумка: Я хотела сделать кнопку еще одну в представлении, которая при нажатии будет проверять, есть ли такая почта в БД. Если есть: на этой же форме выводится сообщение, что такая почта уже есть. Если почты нет еще в базе: кнопка для сохранения данных становится доступной, сообщение какое-нибудь выходит по типу "Почта свободна" и новой пользователь в БД добавляется. Для этого,вероятно, нужно код для проверки записи в бд запихнуть в представление, а как это сделать - я не знаю. Ищу в инете: натыкаюсь на script вставки, я как понимаю это на JS, а я его не знаю. Можно как-то сделать вставку функции на C#? или даже на JS, просто покажите пожалуйста пример, как их нужно делать, не могу выявить закономерность. Подскажите пожалуйста, не могу придумать ничего 3-ий день. Ниже код, который у меня сейчас есть. Контроллер:
0
|
|||||||||||
| 02.06.2021, 16:20 | |
|
Ответы с готовыми решениями:
9
Использование пакета с функцией в представлении Методом наименьших квадратов аппроксимировать табличные значения линейной функцией и функцией Обработка данных из формы методом POST |
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
|
| 02.06.2021, 17:07 | |
|
AlexPes,
.. если вы хотите прикручивать к шаблонному MVC "перламутровые пуговицы" в виде подобных проверок (а вы непременно этого захотите в дальнейшем), то учить Javascript все равно придется, увы (или к счастью, кому как ) ... В качестве первой прикидки можно использовать autocomplete/автозаполнение, вариантов которых много, вот один из примеров от индийских товарищей в связке с MVC:Creating AutoComplete TextBox In ASP.NET MVC 5 .. в данном случае пользователь по мере заполнения поля Email будет видеть в подсказках уже существующие зарегистрированные почты и соответственно создавать свою уникальную ... Этот скрипт можно модифицировать и дальше, но понимать Javascript/JQuery все равно придется ...
1
|
|
|
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
|
|
| 02.06.2021, 17:12 [ТС] | |
|
carrotik, эта проверка даже не мое желание, просто очень неудобно, если каждый раз при проверке будет вся введенная инфа сбрасываться, а если я не проверю - БД сломается. js планирую изучить, просто сейчас времени впритык, некогда изучать. Спасибо за ссылку!
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 02.06.2021, 17:52 | ||
|
AlexPes,
Есть клиентская и есть серверная валидации. Для почты Вы хотите сделать валидацию на клиенте ? Т.е. проверять Email на наличие в БД на клиенте ? Легко. Для этого Вам нужно в страничку регистрации сунуть весь список имеющихся в базе "мыл". Это можно сделать через разметку (<ul>-<li> либо <select>-<option>) в hidden-блоке, а затем сверяться с этими списками в коде валидации JS. Можно даже делать контекстную подстановку "по-индийски". А можно "стрелять" ими Json-ом. Однако есть два "но". 1. Пока страничка будет висеть в браузере клиента, в базе могут произойти изменения - какие-то "мыла" удалятся, а какие-то добавятся. При этом на клиенте об этом "ни слуху, ни духу". 2. Если в базе сотни (тысячи, десятки тысяч) "мыл", все они весело повалятся в Сеть и на устройство Клиента, тормозя все на свете. И да, в любом случае надо JS - без него на Клиенте ну никуда ![]() Добавлено через 1 минуту
0
|
||
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
||
| 02.06.2021, 18:02 | ||
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 02.06.2021, 18:15 | ||
|
Ага, очень остроумно ![]() Добавлено через 8 минут У меня только вопрос: с какой стати регистрирующемуся юзеру показывать какие-то данные других зарегистрированных пользователей, в частности адрес почты ?
0
|
||
|
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
|
||
| 02.06.2021, 21:28 [ТС] | ||
|
MsGuns,
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 02.06.2021, 22:21 | |
|
AlexPes,
Т.е. Вы хотите в стартовой страничке регистрации получить весь список "мыл" из БД ? Добавлено через 3 минуты Но при этом юзер не должен его видеть и использоваться он будет только при проверке JS-кодом ? Эта плохая идея, т.к. есть еще и третий недостаток: любой юзер может легко подсмотреть всю базу мыл, просто открыв окно кода в браузере.
0
|
|
|
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
|
|
| 02.06.2021, 23:07 [ТС] | |
|
MsGuns, пока так, да. у меня задача учебная, нигде использоваться не будет, потому что БД на локальном сервере, максимум 50 записей будет хранить.
Добавлено через 43 минуты MsGuns, а их нельзя как-нибудь спрятать? свойство hidden уже бессильно здесь, оно только от пользователя инфу скрывает? Как все непросто то... не знаю, что и делать
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 03.06.2021, 00:10 | ||
|
AlexPes, Вам же нужно без JS ? Вариант с проверкой на клиенте не реализуется никак. От слова совсем.
Без JS можно реализоваться с серверной проверкой. Т.е. по получении заполненной формы (точнее не самой формы, конечно, а параметров со значениями в http) сервер проверяет мыло и, если его нет, то добавляет в базу нового пользователя и возвращает Главную страничку, а если есть, возвращает заполненную (как была) страничку с формой и с сообщением где-нибудь внизу о наличии мыла в базе, т.е. ошибку. В этом случае JS вообще не требуется. Добавлено через 3 минуты Для проверки используется этот массив. Добавлено через 2 минуты Но, повторюсь, проверка на клиенте чисто серверной информации - чисто дубовая технология.
0
|
||
| 03.06.2021, 00:10 | |
|
Помогаю со студенческими работами здесь
10
Обработка нажатой кнопки в представлении MVC обработка массива в представлении
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|