У меня есть приложение ASP.NET MVC 3.0.
Внутри приложения у меня есть вид входа в систему, который строго типизирован через класс LoginViewModel
. Кроме того, к представлению входа в систему могут обращаться два разных типа людей Employees and Management
.
Вид отображается в виде < table >
. Пользователь должен сначала выбрать (из 2 переключателей), какой тип пользователя он (Employee or Management
), и из этого выбора я изменяю пользовательский интерфейс и отображаю (показываю / скрываю) определенные div
с.
Если выбрано Employee
, я запрашиваю Employee Number
и Password
.
Если выбрано Management
, я запрашиваю UserCode
и Password
.
LoginViewModel имеет 4 свойства:
- -
UserType
(представляет выбранный переключатель)
- -
EmployeeNumber
(представляет текстовое поле для сотрудников)
- -
UserCode
(представляет текстовое поле для управления)
- -
Password
(представляет текстовое поле для пароля независимо от того, кто выбран)
Поскольку пользовательский интерфейс изменяется в соответствии с выбранным переключателем, я не могу использовать атрибут [Required]
в свойствах EmployeeNumber и UserCode, потому что если я это сделаю, < form >
не будет отправлено (так как одно из полей будет скрытый).
Чтобы преодолеть это ограничение / проблему, я должен удалить атрибут [Required]
в обоих свойствах и предположительно сделать это на стороне клиента.
Для записи я не использую MicrosoftMVCValidation.js
, но вместо этого jquery.validate.min.js and jquery.validate.unobtrusive.js
Вопрос 1)
При поиске примеров в Интернете я видел многие из них, включая этот файл:
JQuery. ненавязчивый -ajax.min.js
Какова цель этого файла и как он соотносится с проверкой на стороне клиента (если есть)?
Мне действительно это нужно? Разве jquery.validate.min.js и jquery.validate.unobtrusive.js должно быть недостаточно?
Вопрос 2)
Я понимаю, что можно написать собственный атрибут валидации и поместить его в свойство EmployeeNumber или UserCode, но если я это сделаю (и зная, что буду скрывать один из них в пользовательском интерфейсе), как я могу помешать себе получить та же проблема, что у меня была с атрибутом [Required]
? (имеется ввиду невозможность отправить форму, потому что она скрыта)
Могу ли я просто сделать это прямо в представлении? Кто-нибудь будет так любезен, чтобы показать мне быстрый пример?
Спасибо
Да, да ... jquery-1.7.1.min.js включен в основной макет (на случай, если кто-нибудь спросит).