2013-11-15 74 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驗證。而那個技巧