我有一个枚举。根据模型带来的价值,我必须检查单选按钮。我怎么能这样做?
<%=Html.RadioButton("Role", Role.Viewer)%><%= .Role.Viewer%>
<%=Html.RadioButton("Role",.Role.Reporter)%><%= Role.Reporter%>
<%=Html.RadioButton("Role",Role.User)%><%= Role.User%>
我的枚举将是数字1到3,例如如果选择的枚举值是1,我该如何检查Role.Viewer?
答案 0 :(得分:14)
您可以将枚举值转换为int而不会出现任何问题:
<%=Html.RadioButton("Role", (int)Role.Viewer)%><%= (int)Role.Viewer%>
<%=Html.RadioButton("Role", (int)Role.Reporter)%><%= (int)Role.Reporter%>
<%=Html.RadioButton("Role", (int)Role.User)%><%= (int)Role.User%>
请记住,枚举定义隐式具有从0开始的索引。如果您想要更多控制,可以自己手动将int值分配给枚举:
public enum Role {
Viewer = 1,
Reporter = 2,
User = 3
}
<强> [更新] 强>
根据您的评论,我得到您想要将数据库值绑定到radiolist。您可以使用以下代码执行此操作:
<%=Html.RadioButton("Role", (int)Role.Viewer, Model.Role == Role.Viewer)%><%= (int)Role.Viewer%>
<%=Html.RadioButton("Role", (int)Role.Reporter, Model.Role == Role.Reporter)%><%= (int)Role.Reporter%>
<%=Html.RadioButton("Role", (int)Role.User, Model.Role == Role.User)%><%= (int)Role.User%>
此代码假定数据库值与Model.Role同步,但您可以将其替换为您自己的逻辑。并且有more elegant ways来编写radiobutton枚举,但只有3个无线电选项,坚持这个解决方案是安全的。