2013-02-08 29 views
0

模型:ModelState.IsValid是否适用于ajax调用?

public class ChangePasswordModel 
{ 
    //User profile key 
    public string UserName { get; set; } 

    [Required(ErrorMessage = " Please Enter Current Password ")] 
    public string OldPassword { get; set; } 

    [Required(ErrorMessage = " Please Enter a New Password ")] 
    [StringLength(20, MinimumLength = 6, ErrorMessage = "The {0} must be at least {2} and no longer then {1} characters long.")] 
    public string NewPassword { get; set; } 

    [Required(ErrorMessage = " Please Re-enter a New Password ")] 
    [MustBeValidator(MustBeValidator.Condition.EqualTo, "newpassword", ErrorMessage = "Please, confirm password")] 
    public string ReNewPassword { get; set; } 
} 

Ajax调用安全apicontroller:

[System.Web.Mvc.HttpPost] 
    public ActionResult ChangePassword(ChangePasswordModel change) 
    { 

     if (!ModelState.IsValid) 
     { 

的问题是,即使从 “新密码” 差异 “ReNewPassword” 我得到ModelState.IsValid =真

回答

1

我不知道MustBeValidator是什么,但您可以尝试使用ASP.NET MVC 3中的标准属性:

[Required(ErrorMessage = " Please Re-enter a New Password ")] 
[Compare("NewPassword", ErrorMessage = "Please, confirm password")] 
public string ReNewPassword { get; set; } 
+0

以及你的答案解决了我的客户端验证的不同问题。但仍然ajax调用模型状态总是有效的,你知道为什么吗? – 2013-02-08 12:38:40

+1

不,我不知道为什么没有看到你的完整代码(Model,Contoller,View和javascript发送AJAX请求)。这通常应该起作用。 – 2013-02-08 14:13:07

相关问题