【发布时间】:2016-06-23 11:49:44
【问题描述】:
原谅我的无知。没有做很多 MVC 工作,我确信一定有更好的方法来做到这一点,但我似乎找不到。我有一个像这样的标志枚举:
[Flags]
public enum Services
{
Foo = 1,
Bar = 2,
Meh = 4
}
我的模型上的 SelectedServices 属性具有此类型的值。在视图中,我为每个可能的服务设置了一个复选框。我已经实现了这样的绑定逻辑:
<div><label><input type="checkbox" name="services" value="@((int)Services.Foo)"
@if(Model.SelectedServices.HasFlag(Services.Foo))
{
<text>checked</text>
}
/>Foo</label></div>
<div><label><input type="checkbox" name="services" value="@((int)Services.Bar)"
@if(Model.SelectedServices.HasFlag(Services.Bar))
{
<text>checked</text>
}
/>Bar</label></div>
等等。哪个有效,但确实非常混乱。
肯定有更好的方法来封装它 - 但我不知道 MVC 中的相关概念是什么?
【问题讨论】:
-
谷歌搜索给了我this;不确定它是否正是您需要的,但应该让您了解需要做什么
-
用
bool IsFoo和bool IsBar和bool IsMeh创建一个视图模型然后你可以使用强类型Html.CheckBoxFor()方法来生成复选框
标签: c# asp.net-mvc enums enum-flags