使用jQuery Select2多选提交时ViewModel中List属性返回null问题求助
问题根因
你的<select>标签手动指定了错误的name="itemss"属性,覆盖了asp-for="Items"自动生成的name="Items"属性。表单提交时会将多选值提交到名为itemss的字段,而模型绑定只会读取名为Items的字段给ViewModel的Items属性,因此该属性始终为null。
修复方案
直接删除<select>标签里多余的name="itemss"属性即可,修改后的下拉选框代码如下:
<select asp-for="Items" class="itemSelect form-control" multiple asp-items="ViewBag.ItemId"> <option value="Select Items(s) To Checkout" disabled></option> </select>
补充优化建议
- 给
CheckOutItemVM类添加构造函数,初始化Items属性,避免未选择任何物品时属性为null引发后续空引用异常:
public CheckOutItemVM() { Items = new List<string>(); }
- 确认数据库
Item表的ItemID字段类型和List<string>匹配,若ItemID是int类型,可将VM的Items属性改为List<int>,类型完全一致可以减少模型绑定的潜在问题。
内容的提问来源于stack exchange,提问作者Ady
相关产品推荐
相关产品推荐

