Лучшая практика MVC для изменения даты возможного перенаправления - PullRequest
0 голосов
/ 02 июня 2011

Я жду, чтобы кто-нибудь мог сообщить мне о передовой практике MVC для следующих функций.

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

Должен ли это быть какой-то запрос Ajax?

Ответы [ 2 ]

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

Используйте удаленную проверку jQuery с MVC 3. Это вернет сообщение об ошибке из вашего метода контроллера (если вы не возвращаете истину или ложь, а строку вместо этого. Это общая демонстрация, но она должна дать вам представление. Вы все равно нужно будет проверить на сервере, как сказал Мэтт, но я хотел предоставить это как дополнительную информацию о том, как это сделать, по пункту №1 выше.

    [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Please enter a valid e-mail address")]
        [Required()]
        [Display(Name = "Email Address")]
        [Remote("EmailAddressUsed", "Demo", ErrorMessage = "Email Address Already On File")]
        public string EmailAddress { get; set; }

в вашем контроллере

        public JsonResult EmailAddressUsed(string emailAddress)
        {
            if (emailAddress == "test@no.com")
            {
                return Json(emailAddress + " is already in use.", JsonRequestBehavior.AllowGet);

            }
            else
            {
                return Json(true, JsonRequestBehavior.AllowGet);

            }

        }

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

В идеальном мире вы бы поддержали следующие 2 сценария:

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

2) Клиентский AJAX-запрос, который отправляет дату на сервер, задавая основной вопрос «есть ли у нас уже форма с этой датой», и, если да, дает им возможность загрузить оттуда. Эта опция хороша тем, что она позволяет пользователю знать (возможно, до того, как он закончил весь ручной труд по заполнению формы), что есть еще одна введенная форма. Вы, пользователь, были бы благодарны за то, что сэкономили свое время, а вы сэкономили туда и обратно на сервер.

Вы не можете полагаться на асинхронный запрос JavaScript для обеспечения соблюдения ваших бизнес-правил, поскольку его можно легко обойти, как умышленно, так и неосознанно (пользователями с отключенным JavaScript)

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