Ненавязчивая валидация MVC3 с помощью регулярных выражений, всегда сначала неудачная, потом работает - PullRequest
1 голос
/ 14 февраля 2012

Я пытаюсь использовать атрибут DataAnnotations RegularExpression для свойства элемента в коллекции - у объекта Field есть коллекция для объектов Formatter, которые, в свою очередь, имеют коллекцию атрибутов со свойством Value.

Внутри моего класса модели представления атрибутов у меня есть:

[RegularExpression(@"^\d+$", ErrorMessage = "That didn't do what you hoped it would do")]
public string Value { get; set; }

У меня есть это на мой взгляд:

@Html.TextBoxFor( x => x.Formatters[fmt].Attributes[att].Value )

и производит эту разметку:

<input type="text" value=" " name="Formatters[1].Attributes[0].Value" data-val-regex-pattern="^\d+$" data-val-regex="That didn't do what you hoped it would do" data-val="true" >

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

Кто-нибудь имеет представление о том, что я могу делать неправильно или что я могу сделать, чтобы заставить валидатор вести себя в первый раз? Похоже, это как-то связано с коллекциями, потому что, если я добавлю один и тот же атрибут проверки в свойство верхнего уровня, он будет работать как надо.

Спасибо!

1 Ответ

0 голосов
/ 14 февраля 2012

Эта проблема, похоже, изолирована от моего ноутбука на работе.Вчера вечером я перенес код на пару других компьютеров дома, и все работает как положено.

Я до сих пор не уверен, что происходит, но я не думаю, что это то, что сообщество может помочь решить - если кто-то не захочет одолжить мне молот.спасибо Дарину за попытку копать глубже.

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