我必须将隐藏的字段值传递给控制器操作。所以我尝试了以下方式,但我得到的是空值。
我尝试了两种方法,即formcollection和viewmodel概念
控制器
public ActionResult MapIcon()
{
Hidden hd = new Hidden();
return View(hd);
}
[HttpPost]
public ActionResult MapIcon(Hidden hidden)
{
var value=hidden.hiddevalue;//null
FormCollection col = new FormCollection();
var value = col["hidden1"];
// string value = mycontroler.ControlName;
return View(hidden);
}
查看
@model SVGImageUpload.Models.Hidden
Razor view:@using (Html.BeginForm(new { id = "postform" }))
{
<input type="hidden" id="" value="7" name="hidden1" />
<input type="hidden" id="" value="7" name="hidden2"/>
<input type="submit" value="Match"/>
}
视图模型
public class Hidden
{
public string hiddevalue { get; set; }
}
答案 0 :(得分:10)
在我看来,您正试图在POST控制器中获取多个值。在这种情况下,通过您的考试,隐藏输入的值就足够了。在这种情况下,您可以将控制器设置为:
public ActionResult Index()
{
Hidden hd = new Hidden();
return View(hd);
}
[HttpPost]
public ActionResult Index(IEnumerable<string> hiddens)
{
foreach (var item in hiddens)
{
//do whatter with item
}
return View(new Hidden());
}
至于你的观点,简单地改变它以便绑定到同一个名字“hiddens”如下:
@using (Html.BeginForm(new { id = "postform" }))
{
<input type="hidden" value="7" name="hiddens" />
<input type="hidden" value="2" name="hiddens" />
<input type="submit" value="Match" />
}
希望这能满足您的期望。
答案 1 :(得分:9)
试试这个,在Razor视图中:
@using (Html.BeginForm(new { id = "postform" }))
{
@Html.HiddenFor(m=>m.hiddevalue)
<input type="submit" value="Match"/>
}
答案 2 :(得分:3)
如果您的隐藏值是静态的。请尝试此
查看强>
@using (Html.BeginForm(new { id = "postform" }))
{
@Html.HiddenFor(m=>m.hiddevalue)
<input type="hidden" id="" value="7" name="hidden1" />
<input type="hidden" id="" value="7" name="hidden2"/>
<input type="submit" value="Match"/>
}
<强>控制器强>
[HttpPost]
public ActionResult MapIcon(Hidden hidden, string hidden1, string hidden2)
{
var hiddenvalue = hidden.hiddevalue;
var hiddenvalue1 = hidden1;
var hiddenvalue2 = hidden2;
var value=hidden.hiddevalue;//null
FormCollection col = new FormCollection();
var value = col["hidden1"];
// string value = mycontroler.ControlName;
return View(hidden);
}
<强>脚本强>
$(document).ready(function () {
$('#hiddevalue').val("Jaimin");
});