C# Razor视图中多种形式的隐藏字段

C# Razor视图中多种形式的隐藏字段,c#,asp.net,.net,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc 4,请尽快帮助我 我使用jquery选项卡,每个选项卡都有不同的表单,因此页面中有多个表单。我在页面中还有一个隐藏字段Id,它位于所有表单之外。现在,当我提交表单时,控制器中的隐藏字段将变为null。为什么会发生这种情况,因为我在选择“自动完成”时将值设置为“隐藏”字段。当用户从自动完成列表中选择值时,我将值设置为隐藏字段。我的意思是,当我点击提交按钮时,隐藏字段不是空的,我用警报检查了它,隐藏字段显示了值,但在控制器中,隐藏字段将变为空。这是我尝试的第一种方法。实际上我想保持隐藏字段的全局性,因为

请尽快帮助我

我使用jquery选项卡,每个选项卡都有不同的表单,因此页面中有多个表单。我在页面中还有一个隐藏字段Id,它位于所有表单之外。现在,当我提交表单时,控制器中的隐藏字段将变为null。为什么会发生这种情况,因为我在选择“自动完成”时将值设置为“隐藏”字段。当用户从自动完成列表中选择值时,我将值设置为隐藏字段。我的意思是,当我点击提交按钮时,隐藏字段不是空的,我用警报检查了它,隐藏字段显示了值,但在控制器中,隐藏字段将变为空。这是我尝试的第一种方法。实际上我想保持隐藏字段的全局性,因为在保存每个表单时,我需要隐藏字段,因为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})
    }

您的隐藏字段需要位于表单内部

@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.
 });