Как создать валидную модель MVC asp.net, работающую с двумя или более полями - PullRequest
0 голосов
/ 15 сентября 2010

Мне нужны следующие атрибуты:

1. Например: у меня есть 2 поля. первый - флажок, второй - текстовое поле. Если первый контроль проверен. второе поле должно быть атрибутом Required. первый контроль снят. второй контроль не требуется.

[Required]
public boolean showHeader{get;set;}

[IFRequired("showHeader",true)]
public string HeaderText{get;set;}

2. Например: у меня есть 2 поля. новый пароль, подтверждение пароля. Атрибут должен проверить, что это 2 поля равны.

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

[Expression("newPassword",ExpressionAttributeEnum.Equils)]
public string confirmPassword{get;set;}

Как создать вышеуказанные атрибуты?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2011

Для пункта 2, если вы используете MVC3, используйте атрибут Compare

[Обязательный] публичная строка newPassword {get; set;}

[Compare (] публичная строка verifyPassword {get;set;}

Посмотрите на этот SO вопрос и ответ по первой части

0 голосов
/ 15 сентября 2010

Это невозможно при использовании атрибутов.

однако вы можете сделать это довольно легко в своих действиях.

public ActionResult Create(FormCollection collection) {
    ///do your checks here which you cant do using attributes
    ModelState.AddModelError("fieldname", "yourErrorMessage");

    if (ModelState.IsValid) {
        ////.........
    }
    return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...