Asp.net mvc 我可以在Razor视图中使用用户枚举吗?
我有以下枚举:Asp.net mvc 我可以在Razor视图中使用用户枚举吗?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有以下枚举: namespace Storage.Constants.References { public enum RoleType { Guest = 1, User = 2, Admin = 3, Super = 4 } } 以下视图模型: public class BaseViewModel { public int Role { get; set; } } 在我的代码中,我有以下内容
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”类型的操作数。如果要这样做,需要在比较时将RoleType.Admin转换为int。如果要这样做,需要在比较时将RoleType.Admin转换为int。尝试以下操作:
@if (Model.Role >= (int)RoleType.Admin) {
xx
}
试试这个:
@if (Model.Role >= (int)RoleType.Admin) {
xx
}
两种选择。将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
}
两种选择。将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票,但那是另外一个人。他在个人资料中只投了1票反对票,当时两人都得到了我的-1.+1票,但那是另一个人。他在个人资料中只投了1票反对票,当时两人都得到了-1。@瓦拉马斯,难道我用==代替>=就足够了吗?这不是投票失败的原因。再见。@Valamas,我用==代替>=就够了吗?这不是投票失败的原因。再见。