我在部分视图中有隐藏字段
@Html.HiddenFor(model => model.Type, new { id = "Type" })
在我的JS for document.ready函数中的页面我试图使用以下方法获取此Field的值:
var type = $('#Type').val();
alert(type);
值Type在两个局部视图中设置,然后渲染另一个局部视图,如下所示:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
{ Model.Type = TypeEnum.Diesel; }
<p>
@{ Html.RenderPartial("_MyOtherView"); }
</p>
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
{ Model.Type = TypeEnum.Petrol; }
<p>
@{ Html.RenderPartial("_MyOtherView"); }
</p>
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
{ Model.Type = TypeEnum.Electric; }
<p>
@{ Html.RenderPartial("_MyOtherView"); }
</p>
}
然而,当我在加载内容的标签之间进行导航时,警报只会触发“柴油”。值 - 我将HiddenFors更改为TextBoxFor,在屏幕上我可以看到文本框的内容在Tabs之间移动时更新到Diesel / Petrol / Electric但我无法弄清楚为什么警报没有改变?
答案 0 :(得分:0)
除非您使用“Type”作为示例ID,否则您似乎渲染了三个局部视图,每个视图都包含ID为“Type”的隐藏输入。结果是一个包含三个输入且相同ID 的页面,如果您尝试按照脚本中的方式获取其值,则会导致冲突。
我建议在它们上面添加类,例如“hiddenInput”,然后将脚本更新为类似的内容:
$('.hiddenInput').each(function() {
alert($(this).val();
});