MVC3 CompareAttribute, error del lado del cliente

Estoy usando MVC3 y quiero tener el formulario de inicio de sesión y el formulario de registro en la misma página. Para lograr eso, construí LogInRegisterViewModel de la siguiente manera:

public class LogInRegisterViewModel
{
    public LogInViewModel LogIn { get; set; }
    public RegisterViewModel Register { get; set; }
}

Me da lo que quiero (dos formularios en la misma pantalla) y publica los datos para corregir los controladores y devuelve y muestra errores para los formularios (si los hay). El único problema que tengo es con CompareAttribute que tengo arriba de la propiedad ConfirmPassword en mi RegisterViewModel:

public class RegisterViewModel
{
    [Required]
    [Display(Name = "Friendly user name")]
    public string UserName { get; set; }

    [Required]
    [Display(Name = "E-mail address")]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    [StringLength(16, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "Passwords do not match.")]
    public string ConfirmPassword { get; set; }
}

Del lado del cliente, las contraseñas nunca son iguales (~ Siempre obtengo un error de validación de Comparar con un mensaje que me dice que no son iguales), incluso si lo son (estoy seguro de eso). HTML en el navegador es:

    <div class="editor-label">
        <label for="Register_Password">Password</label>
    </div>
    <div class="editor-field">
        <input class="valid" data-val="true" data-val-length="The Password must be at least 6 characters long." data-val-length-max="16" data-val-length-min="6" data-val-required="The Password field is required." id="Register_Password" name="Register.Password" type="password">
        <span class="field-validation-valid" data-valmsg-for="Register.Password" data-valmsg-replace="true"></span>
    </div>

    <div class="editor-label">
        <label for="Register_ConfirmPassword">Confirm password</label>
    </div>
    <div class="editor-field">
        <input class="input-validation-error" data-val="true" data-val-equalto="Passwords do not match." data-val-equalto-other="*.Password" id="Register_ConfirmPassword" name="Register.ConfirmPassword" type="password">
        <span class="field-validation-error" data-valmsg-for="Register.ConfirmPassword" data-valmsg-replace="true"><span class="" generated="true" for="Register_ConfirmPassword">Passwords do not match.</span></span>
    </div>

Tengo la sensación de que se trata de este atributo: data-val-equalto-other = "*. Contraseña"

CompareAttribute funciona bien, cuando uso RegisterViewModel directamente. ¿Alguien ha entrado en esto antes? ¿Es un error o estoy haciendo algo mal? ¿Cómo hacer que Compare to work en mi caso?

Respuestas a la pregunta(4)

Su respuesta a la pregunta