【问题标题】:Render enum as group of inline Bootstrap checkboxes将枚举呈现为内联 Bootstrap 复选框组
【发布时间】:2014-09-28 19:22:07
【问题描述】:

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>

现在假设这些复选框必须来自我的视图模型中的枚举。所以例如我有HolidayModel.RoomPrefs 这是一个像这样的枚举:

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

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

我可以手动执行此操作,但我更愿意使用帮助程序或编辑器模板,或者其他通用的东西,因为 HolidayModel 视图模型有其他枚举,所以我想重用代码。

Razor 是否有现成的东西来支持这一点?

【问题讨论】:

  • Model Bind List of Enum Flags 的可能副本(没有 Bootstrap 复选框,但很容易适应)
  • @AdrianoRepetti 哇,有趣但非常复杂。如您所说,不适用于Bootstrap。我想知道是否有更简单/更好的方法,因为该答案是在许多版本之前(MVC)编写的。模型绑定器也了解具体模型,因此它并不完全通用 - 可能是当时最好的解决方案。

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


【解决方案1】:

目前,MVC 没有“开箱即用”的方式来执行此操作。您需要结合使用自定义模型绑定和/或编辑器模板和/或其他东西。

我已经从我的视图模型中删除了枚举并替换为一系列丑陋的bools。完成这项工作。

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 2010-12-18
    • 2017-10-14
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2012-01-21
    相关资源
    最近更新 更多