Динамически установить обязательные поля - PullRequest
2 голосов
/ 06 ноября 2010

Мне любопытно, как я могу динамически устанавливать атрибуты проверки модели. Например, у меня часто есть представления, где определенные поля должны быть обязательными, когда пользователь находится в определенной роли, но не обязательны, когда пользователь находится в другой роли. Мне бы хотелось, чтобы как на стороне сервера, так и на стороне клиента были установлены соответствующие проверки.

1 Ответ

4 голосов
/ 15 апреля 2011

Разве это не сработает для вас на стороне сервера?

public class RequiredForRoleAttribute : ValidationAttribute
{
    public string Role { get; set; }

    public override bool IsValid(object value)
    {
        return !Roles.IsUserInRole(Role) || (value != null && !string.IsNullOrEmpty((string)value));
    }
}

И пример использования будет;

        [RequiredForRoleAttribute(Role = "Admins", ErrorMessage = "Phone number is required for members of the admin role.")]
    public string PhoneNumber { get; set; }

Теперь для клиентской стороны,

Вы собираетесь зарегистрировать его для удаленной проверки, как описано по следующей ссылке;http://forums.asp.net/t/1559594.aspx/1

Надеюсь, вы его получите,

Крис

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