powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Серверная валидация
6 сообщений из 6, страница 1 из 1
Серверная валидация
    #38960390
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужщины. Как сделать субж? Нужна сложная валидация с проверкой по базе. Когда модель приходит в контроллер уже ничего нельза сделать? Неужели придеться реализовывать всякие кастом валидаторы и атрибуты?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        // POST: Transfers/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Create([Bind(Include = "TransferID,Employee,DateStart,DateBack,Office")] Transfer transfer)
        {
            if (ModelState.IsValid)
            {
                /// validation
                /// 
                if (transfer.DateStart > transfer.DateBack)
                {

                    вот тут нужно ругнуться
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }

                db.Transfers.Add(transfer);
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }

            return PartialView(transfer);
        }
...
Рейтинг: 0 / 0
Серверная валидация
    #38960402
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добалю, что у меня модальный диалог. Вся валидация по модели атрибутов делается на клиенте и это работает JavaScript-ом. Если при нажатии кнопки "Сохранить" клиентская валидация по модели проходит, то окно закрывается и модель передается в метод контроллера Create и все провалидировать на сервере уже ничего нельзя.
...
Рейтинг: 0 / 0
Серверная валидация
    #38960678
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, смотрите:
Код: c#
1.
IValidatableObject


и
Код: c#
1.
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
...
Рейтинг: 0 / 0
Серверная валидация
    #38960707
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>>> Откуда: Туманный Альбион
так это в турции. там тепло.
AxeleronRelic Hunter, смотрите:
Код: c#
1.
IValidatableObject


и
Код: c#
1.
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
...
Рейтинг: 0 / 0
Серверная валидация
    #38960730
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
Зарубите себе на носу и навсегда: клиентская валидация - для понта и кайфа юзера, но без серверной валицадии никуда и никогда. Если не получается сделать нормально серверную валидацию, меняйте архитектуру, выкидывайте понты, и все будет хорошо.

В Вашем случае я вижу множество проблем и слишком оптимичтичный подход. НЕ используйте модальные окна.
...
Рейтинг: 0 / 0
Серверная валидация
    #38960731
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете сделать серверную валидацию Ajax'ом, и только если будет успешная валидация, закрывайте окно. Но учтите, что у пользователей без Javascipt'a все это работать не будет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Серверная валидация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]