You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor Pages:如何从外部类的枚举中获取枚举值?

解决Razor页面访问外部枚举值的问题

你遇到的核心问题是错误地通过枚举实例访问枚举静态值——BaseData是JobBaseData枚举的一个实例对象,而Fulltime这类枚举值属于枚举类型本身,不是实例的属性,所以不能用@Model.BaseData.Fulltime的写法。

以下是几种无需额外创建属性的最优解决方法:

方法1:导入枚举命名空间(推荐)

在Razor页面的最顶部添加枚举所在的命名空间引用:

@using 你的枚举所在命名空间; // 替换成实际命名空间,比如Enums所在的Namespace

之后就可以直接通过枚举类型访问值,转成int类型(适配radio的value需求):

<input class="radiosize" type="radio" id="Vollzeit" name="rr" value="@((int)JobBaseData.Fulltime)" checked>

方法2:使用完整命名空间访问

如果不想导入命名空间,直接写枚举的完整限定名即可:

<input class="radiosize" type="radio" id="Vollzeit" name="rr" value="@((int)你的命名空间.JobBaseData.Fulltime)" checked>

方法3:绑定模型并自动设置选中状态

如果需要表单提交后自动绑定到PageModel的BaseData属性,同时根据当前模型值自动设置checked状态,可以这样写:

@using 你的枚举所在命名空间;

<input class="radiosize" type="radio" id="Vollzeit" name="BaseData" value="@((int)JobBaseData.Fulltime)" 
       @(Model.BaseData == JobBaseData.Fulltime ? "checked" : "")>

这种写法既解决了枚举值访问问题,又能和模型联动,更符合Razor页面的开发规范。

内容的提问来源于stack exchange,提问作者inno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:30:02