繁体   English   中英

当未选中某些复选框时,MVC获取复选框的集合

[英]MVC get collection of checkboxes when some are not checked

我有一个正在提交的表格,它有多个复选框。 表单是用户定义的,因此它必须能够适应任何大小。 我有一个正在使用的“附加组件”集合。 表单在复选框中显示插件,每个插件都有4个选项。 他们可以在每个插件上选择一个选项(使用jQuery限制选中的一个checkox),但不需要。

我遇到的问题是,如果他们提交表单时,如果第一个复选框没有选中的选项,而其余复选框没有通过,因为它们出现在列表/集合中,那么如何使这些复选框成为可选项并将数据传递给我的控制器?

<h1>Pick Your Extras To Make It More Special</h1>
<fieldset>
    <ul>
        <li>Extra <br /><img src="UPS_30484.jpg" /></li>
        <li><label>One <br /> $1.25<br /> <input type="checkbox" name="Addons[0]" value="1" class="addon-checkboxes"></label></li>
        <li><label>Two <br /> $2.50<br /> <input type="checkbox" name="Addons[0]" value="2" class="addon-checkboxes"></label></li>
        <li><label>Tree <br /> $3.00<br /> <input type="checkbox" name="Addons[0]" value="3" class="addon-checkboxes"></label></li>
        <li><label>Four <br /> $4.00<br /> <input type="checkbox" name="Addons[0]" value="4" class="addon-checkboxes"></label></li>
   </ul>
</fieldset>
<fieldset>
   <ul>
        <li>Extra 2 <br /><img src="UPS_30484.jpg" /></li>
        <li><label>One <br /> $2.50<br /> <input type="checkbox" name="Addons[1]" value="5" class="addon-checkboxes"></label></li>
        <li><label>Two <br /> $5.00<br /> <input type="checkbox" name="Addons[1]" value="6" class="addon-checkboxes"></label></li>
        <li><label>Three <br /> $7.50<br /> <input type="checkbox" name="Addons[1]" value="7" class="addon-checkboxes"></label></li>
        <li><label>Four <br /> $10.00<br /> <input type="checkbox" name="Addons[1]" value="8" class="addon-checkboxes"></label></li>
   </ul>
</fieldset>
<fieldset>
    <ul>
        <li>Candy  <br /><img src="30484.jpg" /></li>
        <li><label>Small<br /> $5.00<br /> <input type="checkbox" name="Addons[2]" value="13" class="addon-checkboxes"></label></li>
        <li><label>Medium<br /> $10.00<br /> <input type="checkbox" name="Addons[2]" value="14" class="addon-checkboxes"></label></li>
        <li><label>Large<br /> $15.00<br /> <input type="checkbox" name="Addons[2]" value="15" class="addon-checkboxes"></label></li>
        <li><label>Bucket<br /> $20.00<br /> <input type="checkbox" name="Addons[2]" value="16" class="addon-checkboxes"></label></li>
   </ul>
</fieldset>

每个值代表数据库中具有附加产品外键的价格。 因此,我获得了Addons的列表,但是当Addons[0]没有选择任何内容时, Addons[1]Addons[2]也不会提交。 如果全部选中,这些值确实会传递到控制器,但是我需要这些值是可选的。

提交时视图的模型:

public class ProductToCartViewModel : BaseObject
  {
    [Required]
    public int Price { get; set; }
    public int[] Addons { get; set; }
    public string DeliveryZipCode { get; set; }
    public DateTime DeliveryDate { get; set; }
    public ApplicationUser User { get; set; }
  }

我认为如果用户只能从4个选项中选择一个选项,则应该使用单选而不是复选框。 当您说“如果第一个复选框没有选中的选项”时,是指每个4个插件选项中的第一个复选框吗? 还是来自3个Extras组?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM