2013-11-15 142 views
0

我遇到了使用[Compare-attribute]验证2个文本框的问题。即使他们是相同的客户端验证说他们是不同的。MVC比较不起作用

在我editmodel我:

[Required] 
[DataType(DataType.Password)] 
public string Password { get; set; } 

[DataType(DataType.Password)] 
[Compare("Password", ErrorMessage = "Password not matching")] 
public string ConfirmPassword { get; set; } 

鉴于:

<tr> 
    <td class="editor-label"> 
    @Html.LabelFor(model => model.User.Password): 
    </td> 
    <td class="editor-field"> 
     @Html.EditorFor(model => model.User.Password) 
     @Html.ValidationMessageFor(model => model.User.Password) 
    </td> 
    </tr> 
    <tr> 
     <td class="editor-label"> 
      @Html.LabelFor(model => model.User.ConfirmPassword): 
     </td> 
     <td class="editor-field"> 
      @Html.EditorFor(model => model.User.ConfirmPassword) 
      @Html.ValidationMessageFor(model => model.User.ConfirmPassword) 
     </td> 
    </tr> 

文本框被渲染为:

<input class="text-box single-line password" data-val="true" 
      data-val-required="Password missing" id="User_Password" 
      name="User.Password" type="password" value="" /> 

    <input class="text-box single-line password" data-val="true" 
      data-val-equalto="Password not matching" 
      data-val-equalto-other="*.Password" id="User_ConfirmPassword" 
    name="User.ConfirmPassword" type="password" value="" /> 

<span class="field-validation-valid" data-valmsg-for="User.ConfirmPassword" 
data-valmsg-replace="true"></span> 

什么可能是错误/缺少在这里?

回答

0

我更新了使用Nuget packagemanager的unobtrusive + jquery验证。而那个技巧