2011-02-18 68 views
1

我有2個,一個是更新用戶的詳細信息另一個是更改密碼面板。兩者都有單獨的「更新」按鈕。當我點擊更改密碼的更新按鈕時,我不想要驗證用戶詳細信息部分,反之亦然。目前我在View中使用下面的代碼。如何在ASP.net MVC2中做條件需求字段驗證

[Required] 
    [DataType(DataType.Password)] 
    [DisplayNameLocalized(typeof(CapnorResource), "RepeatNewPassword")] 
    public string RepeatNewPassword { get; set; } 

以下是代碼。

 <div class="passwordtd"> 
      <%: Html.LabelFor(view => view.RepeatNewPassword)%> 
      <%: Html.PasswordFor(view => view.RepeatNewPassword)%> 
      <%: Html.ValidationMessageFor(view => view.RepeatNewPassword)%> 
     </div> 

回答

0

我不是從問題的措辭十分清楚,但有兩個不同的按鈕,這聽起來像有兩個不同的ViewModels兩種不同的形式。 ViewModel可以組成一個大的ViewModel,或者你可以使用RenderPartial將它們完全分開。

+0

Hi Hendry, 感謝您的回覆。你以正確的方式得到了問題,但我的情況與你的理解有點不同。 在我的情況下,我有單個用戶控件,它有2個

,在每個字段集中我有2個更新按鈕(提交)。比如第一個字段集有姓名,姓氏,Dob和第二個字段集有舊密碼,新密碼和重複密碼。當我們輸入舊密碼並單擊更改密碼按鈕時,它應該只驗證ne和重複密碼,但是它顯示第一個字段集(名稱,姓氏,Dob)的必填字段的驗證消息。 – Jaichandran 2011-02-21 17:19:06

0

我有同樣的情況,只有很少的轉折。 我有一個單一的帳戶頁面和更改密碼是呈現爲部分內部的主頁面,更改密碼有其自己的更新按鈕和部分呈現在div id =「安全」標籤,它隱藏在$(文檔) 。準備()。主要帳戶詳細信息頁面上有一個鏈接,用於取消隱藏div。

我做了以下部分驗證。
1)在表單標籤旁邊創建一個臨時div。
2)在$(document).ready()我將更改密碼部分追加到臨時div,因此當主Account Details驗證被觸發時,更改密碼的驗證不會被觸發。
3)當鏈接取消隱藏的變化密碼部分被點擊我再次追加變更密碼部分,以形成並然後在改變密碼部分I手動調用驗證mehods

變種驗證= $(「形式的更新按鈕「).validate(); var oldpass = document.getElementById(「OldPasswordfeild」); var newpass = document.getElementById(「NewPasswordfeild」); var conpass = document.getElementById(「ConfirmPasswordfeild」);

 if (!validator.element(oldpass) || !validator.element(newpass) || !validator.element(conpass)) 
     { 
      isvalid = false; 

     } 

所以只能更改密碼驗證的諧音被解僱,如果它們是有效的我做一個AJAX後到我的控制器,如果它是成功的隱藏div和它再次追加到臨時DIV出方的形式。

上面的東西就像魅力一樣。