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上时,另一个选项卡仍然在页面上。是的,它们是…因为它们都在同一个局部视图及其引导导航选项卡上