Задать вопрос
Acceptme3
@Acceptme3

Почему не работает валидация на стороне сервера после настройки валидации на стороне клиента?

Приложение ASP .NET Core MVC. Есть форма для ввода данных. Код формы:
HTML-Код формы

@model VartanMVCv2.Domain.Entities.Client;

<div class="pop_up" id="pop_up">
    <div class="pop_up_container">
        <div class="pop_up_body">
            <div class="grid_form_container">
                <div class="grid_item">
                     <p id="p_textForm">Оставьте заявку и мы Вам перезвоним.</p>
                    <form action="Index" method="post" >
                        <p2 class="validation_text">
                            <input class="text_input_form" type="text" name="Name" value="" placeholder="Имя" asp-for="Name" data-val-required="Это поле не долно быть пустым" />
                            <span asp-validation-for="Name"/>
                        </p2>
                        <p2 class ="validation_text">
                            <input class="text_input_form" type="text" name="Phone" value="" placeholder="Телефон" asp-for="Phone" data-val-required="Это поле не долно быть пустым" />
                            <span asp-validation-for="Phone" />
                        </p2>
                        <p2 class="validation_text">
                            <input class="text_input_form" type="text" name="Email" value="" placeholder="Email" asp-for="Email" data-val-email="Некорректный Email адрес" />
                            <span asp-validation-for="Email" />
                        </p2>
                        <div class="time_selection">
                            <label for="time" class="lab_chk_time">Позвонить с: </label>
                            <input type="time" id="time" name="time" />
                        </div>
                        <button name="acceptBtn" id="accept" type="submit" value="Send">Создать заявку</button>
                    </form>
                    <div class="pop_up_close" id="pop_up_close">&#10006</div>
                </div>
                <div class="grid_item_1" >
                    <div class="image_person"><img src="~/images/form_person.png"></div>
                </div>
            </div>
            
        </div>
    </div>
</div>


Три поля для ввода данных с настроенной валидацией на стороне клиента и сервера. Только по нажатию кнопки acceptBtn вместо перехода к post - методу всплывает окно:
6470c110b1d9d685398630.jpeg
Что я делаю не так? Как по нажатию кнопки вызвать post - метод index? Подскажите. будьте добры.
Код контроллера

public class HomeController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult Index(Client client)
        { 
            if (ModelState.IsValid) 
            {
            
                return View("Confirm");
            }
            return View();
        }


Модель

public class Client
    {
        [Required]
        public Guid Id { get; set; }

        [Required]
        public string Name { get; set; }
        [EmailAddress]
        public string Email { get; set; }
        
        [Required]
        [Phone]
        public string Phone { get; set; }

        public DateTime? CallTime { get; set; }

        public Client() 
        {
           
        } 

        private Guid GetId() 
        {
            Guid id = Guid.NewGuid();
            return id;
        }

  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Acceptme3
@Acceptme3 Автор вопроса
Разобрался в проблеме! Выкладываю вдруг кому пригодиться. Библиотеки валидации нужно подключать в самом начале, сразу после jqwery.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы