2014-09-02 51 views
0

我有一個局部視圖,其上有一個nav欄。假設它有兩個選項卡,並且兩個選項卡具有相同的屬性。我的要求是它應該只驗證一個textbox元素。使用導航標籤有局部視圖驗證問題 - mvc 4

它是服務器端驗證。並且所有的腳本標籤如unobtrusive,validate都已準備就緒。

我的局部視圖:

<ul class="nav nav-tabs"> 
     <li class="active"><a href="#id1" data-toggle="tab">First</a></li> 
     <li><a href="#id2" data-toggle="tab">Second</a></li> 
    </ul> 

    <div class="tab-content 1"> 

    @Html.LabelFor(m=> m.FirstName) 
    @Html.TextBoxFor(m=> m.FirstName) // lets say this is the element for tab 1 


    </div> 

    <div class="tab-content 1"> 
     @using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post)) 
     { 
      @Html.LabelFor(m=> m.FirstName) 
      @Html.TextBoxFor(m=> m.FirstName) 
      @Html.ValidationMessageFor(m=> n.FirstName) // it should only validate this element. 
     } 
    </div> 

當我在選項卡1,它仍試圖驗證標籤2場,因爲兩者共用同一property

如何有效防止這種情況?

+0

如果檢查HTML是模型的形式IDS是否一致? – Jasen 2014-09-02 19:17:09

+0

是的,他們是......... – user2281858 2014-09-02 19:19:19

+0

ID必須是唯一的。當您在Tab-N上時,其他選項卡仍在頁面上。 – Jasen 2014-09-02 19:23:11

回答

0

開始使用形式TAB1

$("#tab1").validate({ }); 

和TAB2是

$("#tab2").validate({ }); 
+0

請詳細說明。 – user2281858 2014-09-02 18:34:35

+0

這是怎樣解決問題的? – 2014-09-02 18:35:23

+0

@StevenWestbrook,請對我的問題提出一些看法 – user2281858 2014-09-02 18:36:59