Asp.net mvc 是否可以创建可重复使用的Html。checkboxes for<;enum>;()帮助程序与其他内置帮助程序一致

Asp.net mvc 是否可以创建可重复使用的Html。checkboxes for<;enum>;()帮助程序与其他内置帮助程序一致,asp.net-mvc,checkbox,enums,html-helper,asp.net-core-3.1,Asp.net Mvc,Checkbox,Enums,Html Helper,Asp.net Core 3.1,我正在尝试创建一个HTML帮助程序来显示枚举的一组复选框,并将这些值绑定到视图模型上的列表中 大多数情况都很好,我们可以使用Enum.GetValues()为枚举中的每个值生成复选框。e、 g.对于此枚举和视图模型: Enum Fruit { Apple, Banana } Class MyViewModel { public List<Fruit> Fruits { get; set; } } 这确保了始终存在ModelState,但是ModelBind

我正在尝试创建一个HTML帮助程序来显示枚举的一组复选框,并将这些值绑定到视图模型上的
列表中

大多数情况都很好,我们可以使用
Enum.GetValues()
为枚举中的每个值生成复选框。e、 g.对于此枚举和视图模型:

Enum Fruit {
    Apple,
    Banana
}

Class MyViewModel {
    public List<Fruit> Fruits { get; set; }
}
这确保了始终存在
ModelState
,但是ModelBinder无法将
hidden\u checkbox\u dummy\u值
映射到
Fruit
的值,因此我们得到一个异常

写了所有这些之后,我现在怀疑我的前进方向是研究一个自定义模型绑定器来忽略虚拟值,但是这花费了足够的研究,我认为这个问题在将来可能对其他人仍然有用

确认定制模型活页夹将/将不起作用,或就前进方向提出其他建议,将不胜感激

请注意,向枚举中添加额外值不是我可以使用的解决方案,因为它会使重用变得太混乱

<input id="Fruits_Apple" name="Fruits" type="checkbox" value="Apple">
<input id="Fruits_Banana" name="Fruits" type="checkbox" value="Banana">
<input id="Fruits_Apple" name="Fruits" type="checkbox" value="Apple">
<input id="Fruits_Banana" name="Fruits" type="checkbox" value="Banana">
<input name="Fruits" type="hidden" value="hidden_checkbox_dummy_value">