2013-02-08 3 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; } 
} 

Аякса вызов apicontroller безопасности:

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

     if (!ModelState.IsValid) 
     { 

проблема, даже когда "NewPassword" дифф от "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 называет modelstate всегда действительным, знаете ли вы, почему? –

+1

Нет, я не знаю, почему, не видя полный код (модель, Contoller, View и javascript, отправляющая запрос AJAX). Это должно нормально работать. –

Смежные вопросы