将枚举渲染为内联Bootstrap复选框组

时间:2014-09-26 14:05:26

标签: asp.net asp.net-mvc twitter-bootstrap razor

Bootstrap可以显示一组inline checkboxes like this

<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox1" value="option1"> 1
</label>
<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox2" value="option2"> 2
</label>
<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox3" value="option3"> 3
</label>

现在假设这些复选框必须来自我的viewmodel中的枚举。例如,我有HolidayModel.RoomPrefs,这是一个这样的枚举:

[Flags]
enum ReservationPreferences {
  Room = 2,
  Breakfast = 4,
  Lunch = 8,
  Dinner = 16
}

我想将此枚举呈现为一组内联复选框(即上面的标记)。

我可以手动完成,但我更喜欢使用帮助器或编辑器模板,或者其他通用的模板,因为HolidayModel viewmodel有其他枚举,所以我想重用代码。

Razor是否有开箱即用的东西来支持这个?

1 个答案:

答案 0 :(得分:0)

目前,MVC没有“开箱即用”的方式来做到这一点。您需要结合使用自定义模型绑定和/或编辑器模板和/或其他内容。

我已从我的viewmodel中删除了枚举,并替换为一系列丑陋的bool。做的工作。