簡體   English   中英

Razor視圖中多種形式的隱藏字段

[英]Hidden Field in multiple Forms in Razor views

請盡快幫助我。

我正在使用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();"/>
}

否則,提交后將不會發布。

您可以將隱藏字段添加到每個表單,也可以使用jQuery將隱藏字段附加到已單擊表單的位置。

更新

 $('formID').submit(function(){
   $(this).append($('#hiddenID'));  // should append your hidden field to whatever form is being submitted.
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM