C# Razor视图中多种形式的隐藏字段
请尽快帮助我 我使用jquery选项卡,每个选项卡都有不同的表单,因此页面中有多个表单。我在页面中还有一个隐藏字段Id,它位于所有表单之外。现在,当我提交表单时,控制器中的隐藏字段将变为null。为什么会发生这种情况,因为我在选择“自动完成”时将值设置为“隐藏”字段。当用户从自动完成列表中选择值时,我将值设置为隐藏字段。我的意思是,当我点击提交按钮时,隐藏字段不是空的,我用警报检查了它,隐藏字段显示了值,但在控制器中,隐藏字段将变为空。这是我尝试的第一种方法。实际上我想保持隐藏字段的全局性,因为在保存每个表单时,我需要隐藏字段,因为Id必须保存在属于每个表单的每个表中。整个页面的模型是相同的C# Razor视图中多种形式的隐藏字段,c#,asp.net,.net,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc 4,请尽快帮助我 我使用jquery选项卡,每个选项卡都有不同的表单,因此页面中有多个表单。我在页面中还有一个隐藏字段Id,它位于所有表单之外。现在,当我提交表单时,控制器中的隐藏字段将变为null。为什么会发生这种情况,因为我在选择“自动完成”时将值设置为“隐藏”字段。当用户从自动完成列表中选择值时,我将值设置为隐藏字段。我的意思是,当我点击提交按钮时,隐藏字段不是空的,我用警报检查了它,隐藏字段显示了值,但在控制器中,隐藏字段将变为空。这是我尝试的第一种方法。实际上我想保持隐藏字段的全局性,因为
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})
}
您的隐藏字段需要位于表单内部
@using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
@Html.HiddenFieldfor(m=>m.fkID)
<input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
}
先生,如果我在表单中保留隐藏字段,那么它在控制器中只能用于第一个表单。没问题,在控制器中获得它之后,我再次将它的值发送到json响应并再次设置它的值。如果我再次设置它的值,那么对于第二个表单submit,它将再次为null,这可能是因为它只在第一个表单中起作用。请澄清,我可以在所有表单中使用相同的隐藏字段吗?并在json响应后设置它的值,并且可以在另一个表单submit中再次使用?是的,您应该能够将其放入每个表单中的隐藏字段。您使用的是jQuery吗?实际上,我只想设置一个隐藏字段,该字段的值可以为每个表单提交的每个帖子保留相同的值。先生,是的,先生,我使用的是jQuery以及java脚本。不,对不起,我使用的是模型的属性类型字符串的隐藏字段。就像在模型中一样,我有st属性公共字符串FKId{get;set;}然后在razor视图中转换为in as hidden field。这就是为什么我在Econcontroller中获得model属性,因为我在控制器中使用model。您可以在上面的问题中看到我在控制器中使用model的位置。
$('formID').submit(function(){
$(this).append($('#hiddenID')); // should append your hidden field to whatever form is being submitted.
});