Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 我可以在Razor视图中使用用户枚举吗?_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

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,我用==代替>=就够了吗?这不是投票失败的原因。再见。