0
请尽快帮助我。剃刀视图中多个表单中的隐藏字段
我正在使用jquery选项卡和每个选项卡我有不同的形式,所以我有多个窗体在页面中。我在页面中也有一个隐藏字段Id,现在,当我提交表单时,隐藏字段在控制器中变为空。为什么会发生这种情况,因为我在选择自动填充时将值设置为隐藏字段。当用户从自动完成列表中选择值时,我将值设置为隐藏字段。我的意思是隐藏字段不是空的,当我点击提交按钮点击时,我检查了它的警报和隐藏字段显示值,但在控制器隐藏的领域将变得空虚。这是我尝试的第一种方法。其实我想保留隐藏的字段全局因为保存每一个表单,我需要隐藏的字段,因为Id必须保存在每个表格的每个表中。整个页面的模型是相同的。
FIRST Method:::
<div id="PageContent">
@Html.HiddenFieldfor(m=>m.fkID)
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
@using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
<input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
}
</div>
<div id="tabs-2">
@using (Ajax.BeginForm("Evaluation","SaveTab2"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
<input type="Submit" id="btnTab2" value="Submit" />
}
</div>
<div id="tabs-3">
@using (Ajax.BeginForm("Evaluation","SaveTab3"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
<input type="Submit" id="btnTab3" value="Submit" />
}
</div>
</div>
</div>
<script type="text/javascript">
</script>
In the second One I placed hidden field in the form that is in the form of first tab.Now, I am getting the model value in the controller.but after the json response I tried to set the value on the success event , the value is coming but on the submission of second form that hidden field is coming again empty. Please help me to solve this problem.
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
@using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
@Html.HiddenFieldfor(m=>m.fkID)
<input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
}
</div>
<div id="tabs-2">
@using (Ajax.BeginForm("Evaluation","SaveTab2"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
<input type="Submit" id="btnTab2" value="Submit" />
}
</div>
<div id="tabs-3">
@using (Ajax.BeginForm("Evaluation","SaveTab3"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
<input type="Submit" id="btnTab3" value="Submit" />
}
</div>
</div>
</div>
<script type="text/javascript">
function DisplayMessage(Json)
{
alert($("#fkID").val(Json.hdn));
and Alert is showing the value
$("#fkID").val(Json.hdn);
}
</script>
In the controller I have done::
public ActionResult SaveTab1(Model obj)
{
tbl ob =new tbl();
ob.FkId=Obj.fkID;
after saving, I return
return json(new{hdn=Obj.fkID})
}
先生,如果我一直隐藏字段的形式,那么它是在控制器只有第一种形式avaialable。没问题,我得到它在控制器中后,我再次将它的值发送给json响应,并再次设置它的值。如果我再次设置它的值,那么对于第二个表单提交,它将再次为空,这可能是因为它仅在第一个表单中的作用域。请澄清,我可以在所有表单中使用相同的隐藏字段吗?并在json响应后设置它的值,并可以在另一个表单中再次使用submit? – Sandy
是的,你应该可以把每个表单内的隐藏字段。你在使用jQuery吗? – Trevor
其实我只是想设置一个隐藏字段的值,可以保留每个窗体提交每个帖子相同的值。 – Sandy