Я пытаюсь найти лучший способ проверить проверку на одну страницу. Он содержит:Пользовательская сводка валидации ASP.NET MVC для полей адреса
- адрес корабля
- платежный адрес
- т.д.
класс Address очевидно содержит First Name
, Last Name
, Street1
, Street2
, City
, State
, Zip
, Phone
и т.д.
Допустим, пользователь нажимает «ОК» перед тем, как вводить что-либо, - тогда вы получите десяток или более ошибок проверки, предоставляя вам большой блок красного текста, который выглядит просто уродливо.
Я хотел бы подтвердить адрес как единое целое и дать интеллектуальную ошибку - например, «неполный адрес» или более конкретные ошибки, если это необходимо. Но я все же хочу уметь выделить каждую отдельную область, которая имеет проблемы. Я не вижу простого способа сделать это прямо сейчас, потому что, очевидно, помощник покажет каждое поле.
Так что я хочу, чтобы показать сводку как:
"Your shipping address is incomplete"
и выделить в красном Zip
и City
.
Я думаю, что мне нужно было бы выполнить полностью пользовательскую проверку ValidationSummary и, возможно, даже полностью настраиваемую структуру данных.
Проделайте какие-либо проверки, чтобы сделать такое краткое изложение проще, если в сводке должно отображаться интеллектуальное резюме, а не только каждая отдельная ошибка поля.
Edit: MVC 2 RC теперь поддерживает ошибки модели на уровне.
ValidationSummary now supports overloads where only model-level errors are displayed. This is useful if you are displaying validation messages inline next to each form field. Previously, these messages would be duplicated in the validation summary. With these new changes, you can have the summary display an overall validation message (ex. “There were errors in your form submission”) as well as a list of validation messages which don’t apply to a specific field.
Кто-нибудь получил реальный пример того, как сделать это?
, но затем отдельные поля не выделяются. я не хочу потерять эту визуальную подсказку - тем более что не все поля действительно требуются (например, Address2) –
@Simon: Если вы хотите, чтобы поле было выделено, вы можете добавить пустую ошибку: 'if (String.IsNullOrEmpty (адрес.Zip)) ModelState.AddModelError ("Zip", ""); 'Он не будет отображаться в сводке проверки. – LukLed