Asp.net mvc 4 导航选项卡存在问题的局部视图验证-mvc 4

Asp.net mvc 4 导航选项卡存在问题的局部视图验证-mvc 4,asp.net-mvc-4,validation,nav,Asp.net Mvc 4,Validation,Nav,我有一个局部视图,上面有一个nav条。假设其中有两个选项卡,两个选项卡具有相同的属性。我的要求是它应该只验证一个textbox元素 这是服务器端验证。所有脚本标记如unobtrusive、validate都已就位 我的部分观点是: <ul class="nav nav-tabs"> <li class="active"><a href="#id1" data-toggle="tab">First</a></li>

我有一个局部视图,上面有一个
nav
条。假设其中有两个选项卡,两个选项卡具有相同的属性。我的要求是它应该只验证一个
textbox
元素

这是服务器端验证。所有脚本标记如
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>
@LabelFor(m=>m.FirstName) @Html.TextBoxFor(m=>m.FirstName)//假设这是选项卡1的元素 @使用(Html.BeginForm(“ActionName”、“ControllerName”、FormMethod.Post)) { @LabelFor(m=>m.FirstName) @Html.TextBoxFor(m=>m.FirstName) @Html.ValidationMessageFor(m=>n.FirstName)//它应该只验证这个元素。 }
当我在选项卡1上时,它仍然尝试验证选项卡2字段,因为两者共享相同的
属性


如何有效地防止这种情况发生?

对tab1使用begin表单

$("#tab1").validate({   }); 
而对于tab2来说是

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

@StevenWestbrook,请解释一下我的问题如果你检查HTML模型的表单ID是否相同?是的,它们是………ID需要唯一。当你在Tab-N上时,另一个选项卡仍然在页面上。是的,它们是…因为它们都在同一个局部视图及其引导导航选项卡上