Применить атрибут RegexValidator (Microsoft.Practices.EnterpriseLibrary.Validation.Validators) к десятичному типу? - PullRequest
0 голосов
/ 27 декабря 2010

Мотив : в классе есть десятичное свойство, которое я хочу проверить, чтобы оно соответствовало регулярному выражению "^ \ d {1,7}. \ D {2,7} $"

Итак, я применил атрибут валидатора Regex к свойству

   [RegexValidator(@"^\d{1,7}\.\d{2,7}$"...)]
   public Decimal MyDecimalProperty { get; set; }

Затем с помощью свойства proxyvalidator на моей странице asp.net я связал проверку текстового поля с этим типом свойства.

<cc1:PropertyProxyValidator ID="MyValidator" runat="server" ControlToValidate="MyTextBox"
PropertyName="MyDecimalProperty" SourceTypeName="Myclass, Mydll"></cc1:PropertyProxyValidator>

Во время выполнения я получаю эту ошибку при выполнении проверки:

"Значение для проверки не является ожидаемый тип: ожидаемый System.String но вместо этого получил System.Decimal. "

Любая идея, как обойти эту проблему, или альтернатива для достижения моего мотива?

1 Ответ

0 голосов
/ 27 декабря 2010

Регулярные выражения созданы для работы со строками, а не с числовыми типами.Возможно, вам нужно что-то вроде этого:

public Decimal MyDecimalProperty { get; set; }

[RegexValidator(@"^\d{1,7}\.\d{2,7}$")]
public string MyDecimalPropertyString
{
    get
    {
        return this.MyDecimalProperty.ToString();
    }
}

Также обновите атрибут PropertyName PropertyProxyValidator.

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