我有以下枚举:
namespace Storage.Constants.References {
public enum RoleType {
Guest = 1,
User = 2,
Admin = 3,
Super = 4
}
}
以下viewmodel:
public class BaseViewModel
{
public int Role { get; set; }
}
在我的代码中,我有以下内容。请注意,Enum由代码识别。
@if (Model.Role >= RoleType.Admin) {
xx
}
我的代码在运行时因以下消息而失败:
错误CS0019:运算符'> ='无法应用于'int'和'Storage.Constants.References.RoleType'类型的操作数
答案 0 :(得分:4)
两个选项。将RoleType.Admin转换为int,因为RoleType.Admin是枚举类型。
@if (Model.Role >= (int)RoleType.Admin) {
xx
}
或者使BaseViewModel中的属性成为枚举,因此无需转换:
public class BaseViewModel
{
public RoleType Role { get; set; }
}
@if (Model.Role >= RoleType.Admin) {
xx
}
答案 1 :(得分:0)
试试这个:
@if (Model.Role >= (int)RoleType.Admin) {
xx
}
答案 2 :(得分:-1)
如果你想这样做,你需要在比较时将RoleType.Admin转换为int。