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

ASP.NET Core中如何获取枚举列表并设置选中值?

解决ASP.NET Core枚举下拉框设置选中项的问题

有几种简单的实现方式,按优先级推荐:

1. 利用Model绑定自动选中(最推荐)

你代码里的asp-for="Category"本身就是绑定到模型的Category属性。只要在后端给模型的这个属性赋值对应的枚举值,前端下拉框会自动匹配选中,完全不用修改现有前端代码。

比如后端Action/PageModel里:

// 假设你的模型是WebsiteInfoModel
var model = new WebsiteInfoModel();
// 给Category赋值要选中的枚举成员
model.Category = WebsiteInfoCategory.News; // 替换成你需要的枚举值
return View(model); // Razor Pages则用return Page();

2. 手动指定选中值(不依赖Model绑定)

如果不想通过Model绑定,或者需要在视图里直接指定,可以用Html.GetEnumSelectList的重载方法,传入要选中的枚举值:

<select asp-items="Html.GetEnumSelectList<WebsiteInfoCategory>(WebsiteInfoCategory.News)" class="form-control"></select>

注意:如果同时使用asp-for,Model绑定的值会覆盖这个手动指定的选中项,所以这种方式适合不需要绑定模型的场景。

3. 通过ViewData传递选中值

如果需要从后端传递选中值但不直接绑定到模型,可以把选中值放到ViewData里,再在视图中处理:
后端代码:

ViewData["SelectedCategory"] = WebsiteInfoCategory.Product;

前端代码:

<select asp-items="Html.GetEnumSelectList<WebsiteInfoCategory>()" 
        class="form-control"
        value="@((int)ViewData["SelectedCategory"])">
</select>

内容的提问来源于stack exchange,提问作者Reza.v

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:28:16