【问题标题】:Receive list of checkboxes in Controller接收控制器中的复选框列表
【发布时间】:2014-08-08 09:43:18
【问题描述】:

我有一个视图,其中显示了多个实体,然后用户可以选择或不选择。所有这些都可以正常工作,但是我无法在我的控制器中接收到这些数据。

控制器:

public class EventOrphans
{
    public int ID { get; set; }

    public string Name { get; set; }

    //...
}

[HttpGet]
public ActionResult FindOrphanedEvents()
{
    //Some Database Logic removed
    List<EventOrphans> list = new List<EventOrphans>();
    return this.View(list);
}

[HttpPost]
public ActionResult FindOrphanedEvents(List<String> events)
{
    //This is where I stuck
}

查看:

 @model List<Musa.Controllers.AdminController.EventOrphans>

 @using (Html.BeginForm())
 {  
 <dl class="dl-horizontal">

    @foreach (Musa.Controllers.AdminController.EventOrphans evnt in Model)
    {
        <dt>
            <input type="checkbox" name="@evnt.ID" id="@evnt.ID" checked="checked"/> 
        </dt>
        <dd>
            @evnt.Name               
        </dd>
    }
    </dl>
    <input type="submit" class="btn btn-primary" value="Abschicken" />
}

当我提交页面时,请求实际上命中了控制器,但数据在控制器中不可见。请求内容如下:(在 fiddler 中签入)

1=on&2=on&3=on&5=on&6=on&7=on&8=on&9=on&10=on&11=on&12=on&13=on&14=on&15=on&16=on&17=on&29=on&41=on&42=on&53=on&65=on&70=on&71=on&72=on&73=on&77=on

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5


    【解决方案1】:

    Working example

    型号

    public class EventOrphans
    {
        public int ID { get; set; }
    
        public string Name { get; set; }
    
        public bool Checked { get; set; }
    
    }
    

    注意 Checked 属性

    查看循环

    @for(var i = 0; i < Model.Count; i++)
    {
    
        <dt>
            @Html.HiddenFor(m => Model[i].ID)
            @Html.HiddenFor(m => Model[i].Name)
            @Html.CheckBoxFor(m = Model[i].Checked)
        </dt>
        <dd>
            @Model[i].Name
        </dd>
    
    }
    

    注意 foreach 的 for 循环以启用模型绑定和隐藏字段以允许将值回发到控制器

    http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/

    管制员职位

    [HttpPost]
    public ActionResult Index(List<EventOrphans> events)
    {
        //All the selected events are available in events
    
        return View(events);
    }
    

    注意从 List&lt;string&gt;List&lt;EventOrphans&gt; 的变化

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2012-05-28
      • 2015-05-29
      • 1970-01-01
      相关资源
      最近更新 更多