powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / отключение валидации некоторых полей
2 сообщений из 2, страница 1 из 1
отключение валидации некоторых полей
    #39805567
__Pavel__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть вот такая модель для создания/редактирования пользователя:
Модель
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
    public class UserEditViewModel
    {
        public string Id { get; set; }

        public UserEditMode EditMode { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [RegularExpression(@"[A-Za-z0-9]+", ErrorMessage = "Логин может состоять только из символов английского алфавита и цифр")]
        [Display(Name = "Логин")]
        public string UserName { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [RegularExpression(@"[A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", ErrorMessage = "Некорректный адрес")]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [RegularExpression(@"[0-9-+]{11,12}", ErrorMessage = "Номер телефона может состоять только из цифр (может начинаться с \"+7\")")]
        [DataType(DataType.PhoneNumber)]
        [Display(Name = "Телефон")]
        public string PhoneNumber { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [DataType(DataType.Password)]
        [Display(Name = "Пароль")]
        public string Password { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [Compare("Password", ErrorMessage = "Пароли не совпадают")]
        [DataType(DataType.Password)]
        [Display(Name = "Подтвердите пароль")]
        public string PasswordConfirm { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [RegularExpression(@"[A-Za-zа-яА-Я -]+", ErrorMessage = "Фамилия может содержать только символы русского или английского алфавита, а так же пробел и тире")]
        [Display(Name = "Фамилия")]
        public string NameF { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [RegularExpression(@"[A-Za-zа-яА-Я -]+", ErrorMessage = "Имя может содержать только символы русского или английского алфавита, а так же пробел и тире")]
        [Display(Name = "Имя")]
        public string NameI { get; set; }

        [RegularExpression(@"[A-Za-zа-яА-Я -]+", ErrorMessage = "Отчество может содержать только символы русского или английского алфавита, а так же пробел и тире")]
        [Display(Name = "Отчество")]
        public string NameO { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [Display(Name = "Пол")]
        public Sex Sex { get; set; }

        [Required(ErrorMessage = "Данное поле обязательно для заполнения")]
        [DataType(DataType.Date)]
        [Display(Name = "Дата рождения")]
        public DateTime DateBirth { get; set; }

        [Display(Name = "Роли")]
        public ICollection<string> RolesAll { get; set; }

        public ICollection<string> RolesSelect { get; set; }

        [Display(Name = "Активный")]
        public bool Active { get; set; }

        public UserEditViewModel()
        {
            RolesAll = new List<string>();
            RolesSelect = new List<string>();
        }
    }


Т.к. данная модель используется и для редактирования, то возникает проблема с валидацией полей Password, они же обязательны для заполнения... как в представлении это изменить (без JS, я его пока не знаю)?

вот кусок представления:
Представление
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        @if (Model.EditMode == UserEditMode.create)
        {
            <div class="form-row">
                <div class="form-group col-md-6">
                    <label asp-for="Password" class="control-label"></label>
                    <input asp-for="Password" class="form-control">
                    <span asp-validation-for="Password" class="text-danger"></span>
                </div>

                <div class="form-group col-md-6">
                    <label asp-for="PasswordConfirm" class="control-label"></label>
                    <input asp-for="PasswordConfirm" class="form-control">
                    <span asp-validation-for="PasswordConfirm" class="text-danger"></span>
                </div>
            </div>
        }
        else
        {
        ... ???
        }


Заранее спасибо!
...
Рейтинг: 0 / 0
отключение валидации некоторых полей
    #39805597
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Pavel__,


Данный пример не совсем простой. Для сложных моделей я обычно делаю два ViewModel, один для создания, другой для редактирования. Если модель простая, то можно и одним ViewModel обойтись. Но View для создания и для редактирования всегда разные! А для отображения на двух views полей которые и для создания, и для редактирования использую PartialView.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / отключение валидации некоторых полей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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