0

我有以下枚举:

namespace Storage.Constants.References { 
    public enum RoleType {
        Guest = 1,
        User = 2,
        Admin = 3,
        Super = 4
    } 
}

以下视图模型:

public class   BaseViewModel
{
    public int Role { get; set; }
}

在我的代码中,我有以下内容。请注意,枚举由代码识别。

@if (Model.Role >= RoleType.Admin) {
   xx
}

我的代码在运行时失败,并显示以下消息:

错误 CS0019:运算符“>=”不能应用于“int”和“Storage.Constants.References.RoleType”类型的操作数

4

3 回答 3

4

两种选择。将 RoleType.Admin 转换为 int,因为 RoleType.Admin 是 Enum 类型。

@if (Model.Role >= (int)RoleType.Admin) { 
   xx 
} 

或者将 BaseViewModel 中的属性设为枚举,因此无需转换:

public class   BaseViewModel
{
    public RoleType Role { get; set; }
}
@if (Model.Role >= RoleType.Admin) { 
   xx 
} 
于 2012-10-13T07:52:19.747 回答
0

试试这个:

@if (Model.Role >= (int)RoleType.Admin) { 
   xx 
} 
于 2012-10-13T07:51:01.353 回答
-1

如果您想这样做,则需要在比较时将 RoleType.Admin 转换为 int。

于 2012-10-13T07:49:49.653 回答