如何在asp.net mvc 3中使用从视图到控制器的隐藏字段值

use*_*526 11 asp.net-mvc-3

我必须将隐藏的字段值传递给控制器​​操作.所以我尝试了以下方式,但我得到了空值.

我尝试了两种方法,即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);
}
Run Code Online (Sandbox Code Playgroud)

视图

@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"/>
}
Run Code Online (Sandbox Code Playgroud)

视图模型

public class Hidden
{
  public string hiddevalue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

小智 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());
}
Run Code Online (Sandbox Code Playgroud)

至于你的观点,简单地改变它以便绑定到相同的名称"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" />
}
Run Code Online (Sandbox Code Playgroud)

希望这能满足您的期望.


Ami*_*mit 9

试试这个,在Razor视图中:

@using (Html.BeginForm(new { id = "postform" }))
{
      @Html.HiddenFor(m=>m.hiddevalue)
     <input type="submit" value="Match"/>
}
Run Code Online (Sandbox Code Playgroud)