Использование Foolproof RequiredIf для нескольких условий

У меня есть раскрывающийся список с именем CustomerType со следующими значениями

Id     Name
1      Student
2      Non-Employed
3      Employed
4      SelfEmployed

и у меня есть еще одно свойство в моем viewmodel public string CompanyAddress{ get; set; }

Моя цель - сделать CompanyAddress обязательным, если выпадающий список имеет значения 3 or 4

Я пробовал следующее, но получаю ошибку Cannon have duplicate RequiredIf

    [RequiredIf("customerTypeID", 3, ErrorMessage = "Please enter company address")]
    [RequiredIf("customerTypeID", 4, ErrorMessage = "Please enter company address")]
    public string CompanyAddress { get; set; }

person ksg    schedule 25.11.2015    source источник


Ответы (1)


Это добавит логики в вашу модель (что обычно недопустимо), но она будет работать. Вы можете изменить свою проверку следующим образом:

[RequiredIf("CompanyAddressRequired", true, ErrorMessage = "Please enter company address")]

И затем иметь свойство с таким геттером:

public bool CompanyAddressRequired
{
    get
    {
        return customerTypeID == 3 || customerTypeID == 4;
    }
}
person Micteu    schedule 15.12.2015