Requerir validación solo si el campo es visible

Estoy usando la[Required] atributo para la validación del lado del cliente en ASP.NET MVC 3.

La clase se ve como:

public class User
{
    [Required(ErrorMessage = "First Name is required")]
    public string FirstName { get; set; }
}

Quiero el campoFirstName se validará solo si está visible, lo que se mostrará solo en determinadas condiciones. ¿Cómo puedo hacer eso

He usado lo siguiente, pero aún parece validar el campo requerido de ese campo oculto.

$('#registerForm').validate({ ignore: ":not(:visible)" });

Respuestas a la pregunta(4)

Su respuesta a la pregunta