Как выполнить комплексную проверку на модельном объекте? - PullRequest
0 голосов
/ 08 февраля 2012

Мой проект находится в ASP.NET MVC 3. В моем домене есть объект модели, определенный Entity Framework.Чтобы проверить свойства, я просто расширяю сгенерированный объект EF и добавляю класс метаданных, который содержит все мои атрибуты проверки.

[MetadataType(typeof(ContactInformationMetaData))]
public partial class ContactInformation
{

}

public class ContactInformationMetaData
{
    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }

    public string Phone { get; set; }

    [EmailValidator]
    public string Email { get; set; }
}

Это прекрасно работает большую часть времени, но теперь у меня есть более сложный сценарий.Я не хочу, чтобы свойства «Телефон» и «Электронная почта» были обязательными, но я хочу, чтобы ОДИН из них был обязательным.Другими словами, я хочу потребовать, чтобы был установлен либо адрес электронной почты, либо телефон, либо оба, но не один.

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

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Проверьте FluentValidation:

http://fluentvalidation.codeplex.com/wikipage?title=mvc

вы можете легко создать этот тип пользовательской проверки, это довольно крутая среда проверки в целом

1 голос
/ 08 февраля 2012

Вот еще один вопрос точно , как этот (даже пример "Телефон и электронная почта"): Проверка модели / ASP.NET MVC 3 - Условно обязательный атрибут

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