我的模特有财产
public enum CheckStatus
{
A = 1,
B = 2,
C = 3,
}
public CheckStatus Status { get; set; }
并且在razor视图中我想切换此属性,如
@switch (Model.Status)
{
case 1:
default:
<div>Selected A</div>
break;
case 2:
<div>Selected B</div>
break;
case 3:
<div>Selected C</div>
break;
}
无法隐式转换类型&#39; int&#39;到CheckStatus&#39;。一个明确的 存在转换(你错过了演员吗?)
答案 0 :(得分:4)
您的switch
语句参数和案例Label
必须具有相同的数据类型。
所以将你的枚举投射到这样的int
switch ((int)Model.Status)
{
case 2:
<div>Selected B</div>
break;
case 3:
<div>Selected C</div>
break;
default:
<div>Selected A</div>
break;
}
或在案例陈述中也使用CheckStatus
switch (Model.Status)
{
case CheckStatus.B:
<div>Selected B</div>
break;
case CheckStatus.C:
<div>Selected C</div>
break;
default:
<div>Selected A</div>
break;
}
我删除了第一个案例,因为在这种情况下你没有做任何事情。同时将default
案例放在最后,使事情变得可读。您也可以使用Case 1
并删除default
(如果需要)
答案 1 :(得分:0)
试试这个
switch((int) Model.Status) { }
达到目标!
附录:Model.Status
只返回A,B等,而不是后面的整数值。