[英]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.