在我的视图中复选框中带有mvc渲染的枚举,我的控制器的反应?

如果我在View中有一个复选框列表,这个列表来自Enum(flags)。 如果我的复选框名称相同,我的控制器是否会自动更新我的ViewModel中的Enum(flags)值并进行多项选择?

假设我进入了我的视图

 <input type="checkbox" name="TypeOfFood" value="" />  

我的控制器像这样工作

 public ActionResult Manage(FoodEntity food) { } 

如果我查看了许多复选框,当我在foodEntity中查看FoodType属性时,只选择了第一个复选框的值,但我的枚举是一个标志…我需要什么,如果我想要支持标志?

谢谢。

很不幸的是,不行。

它只会抓取第一个选中的值并将其分配给您的值字段。

这将是一个非常酷的function。

下面是一个快速的方法来获得您正在寻找的模型的价值:

 int newEnumValue = Request.Form["CheckBoxField"].Split(',').Aggregate(0, (acc, v) => acc |= Convert.ToInt32(v), acc => acc);