В ASP.NET MVC3 есть ли способ сделать тег [RegularExpression] динамическим? - PullRequest
2 голосов
/ 18 октября 2011

У меня есть что-то в моей модели представления, например

[RegularExpression(...)]
public string PenguinGenome
{
    get;set;
}

public int PenguinSpecies
{ 
    get; set;
}

Есть ли способ сделать ... динамическим на основе PenguinSpecies?Это не будет работать, потому что PenguinSpeciesId не существует в контексте.Какой лучший обходной путь?

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Это статья для ASP.NET MVC2, но процесс довольно близок к тому же для ASP.NET MVC3.

По сути, вам нужно будет создать свой собственный валидатор, который сможет посмотреть на объект, а затем определить правильный способ проверки.

0 голосов
/ 18 октября 2011

Средство проверки RegularExpression не совсем то, что вам нужно. Вы хотите проверить PenguinGenome на основе значения другого свойства модели. Другими словами - здесь вам не нужна проверка свойств, а проверка модели.

Вы можете использовать атрибут проверки с учетом модели, но лично я бы не стал - потому что он «скрывает» зависимость (никто не может сказать, глядя на класс модели, что проверка PenguinGenome зависит от PenguinSpeciesId). Я бы предпочел использовать IValidatableObject здесь.

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