我在一页中有多个表单,并且该页面继承了一个模型。每个表单提交都需要一个共同的值。因此,公共值存储在隐藏字段中。隐藏字段保持全局,即在所有表单之外,但我的问题是每当我提交表单时,该隐藏字段将变为空。隐藏字段是@Html.HiddenfieldFor(m=>m.FkId)
,并且此 FkId 在模型中是字符串类型属性,即public string FkId{get;set;}
。有人可以指导我如何处理这种情况。如果我在其中一个表单中保留隐藏字段,那么它将进入控制器,但仅用于我保留它的表单提交。但我希望该属性设置一次,并且可以在所有表单提交中使用。请帮助我。我该如何解决这个问题
一些相关代码
<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" }))
{
@Html.HiddenFieldfor(m=>m.fkID)
<input type="Submit" id="btnTab2" value="Submit" />
}
</div>
<div id="tabs-3">
@using (Ajax.BeginForm("Evaluation","SaveTab3"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
@Html.HiddenFieldfor(m=>m.fkID)
<input type="Submit" id="btnTab3" value="Submit" />
}
</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>
在控制器中我有:
public ActionResult SaveTab1(Model obj)
{
tbl ob =new tbl();
ob.FkId=Obj.fkID;
// after saving, I return
return json(new{hdn=Obj.fkID})
}
public ActionResult SaveTab2(Model obj)
{
tbl ob =new tbl();
ob.FkId=Obj.fkID;
//after saving, I return
return json(new{hdn=Obj.fkID})
}
选项卡三类似,但不幸的是,隐藏文件仅适用于第一个表单提交。然后我返回值以通过 json 查看并再次设置隐藏字段属性,但是对于第二种形式它为空。请帮助