“远程”属性的解决方法

时间:2012-05-05 07:59:41

标签: asp.net-mvc-3 validation

我有Registerlogin页面都使用不引人注目的ajax。
我的模型中的Username属性用Remote("ActionName","ControllerName")装饰 它在Registration Page中运行良好,但问题是验证也在Login Page中运行。那么如何在Remote上禁用Login Page验证属性,但我确实希望signIn中的Login Page具有ajax功能,因此我无法移除unobtrusive javascript file

1 个答案:

答案 0 :(得分:1)

您无法动态关闭远程验证器。

解决方案是不要对两个视图使用相同的模型。

而不是创建两个viewmodel,一个用于登录,另一个用于注册视图,并以不同方式注释它们:

public class RegisterUserViewModel
{
    [Remote("ActionName","ControllerName")]
    public string Username { get; set; }

    //...
}

public class LoginUserViewModel
{
    public string Username { get; set; }

    //...
}

要将视图模型中的属性映射到控制器中的模型,可以使用某些对象 - 对象映射器,如AutoMapper