动态设置必填字段

时间:2010-11-06 15:10:23

标签: asp.net-mvc validation dynamic

我很好奇如何动态设置模型的验证属性。例如,我经常有视图,其中当用户处于某个角色时应该需要某些字段,但是当用户处于另一个角色时则不需要。我希望相应地设置服务器端和客户端验证。

1 个答案:

答案 0 :(得分: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

希望你明白,

克里斯