2010-11-06 4 views
2

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

ответ

4

Не может быть что-то подобное для вас на стороне сервера?

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

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

Chris