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

如何在ASP.NET Core Razor Pages而非MVC中填充下拉列表

在.NET Core Razor Pages中通过asp-items绑定下拉列表

1. 确认现有模型与数据方法

假设你已有的ListModel(你提到的ListMode应为笔误)和数据获取方法PopulateList如下:

// 模型类
public class ListModel
{
    public int Id { get; set; }
    public string ListName { get; set; }
}

// 从dbo.DropListTBL获取数据的方法
public IEnumerable<ListModel> PopulateList()
{
    // 替换为你实际的数据库查询逻辑(比如EF Core)
    using(var dbContext = new YourDbContext())
    {
        return dbContext.DropListTBL
            .Select(item => new ListModel 
            { 
                Id = item.Id, 
                ListName = item.ListName 
            })
            .ToList();
    }
}

2. 在PageModel中定义并填充下拉列表数据

在你的Razor Page对应的*.cshtml.cs文件里,添加公开的SelectList属性,然后在OnGet方法中用PopulateList的数据初始化它:

public class YourPageModel : PageModel
{
    // 公开的下拉列表选项集合,供Razor页面访问
    public SelectList DropDownOptions { get; set; }

    // 绑定用户选中的下拉值(可选,按需添加)
    [BindProperty]
    public int SelectedItemId { get; set; }

    public void OnGet()
    {
        var listData = PopulateList();
        // 参数:数据源、option的value对应字段、option显示文本对应字段
        DropDownOptions = new SelectList(listData, nameof(ListModel.Id), nameof(ListModel.ListName));
    }
}

3. 在Razor页面中绑定asp-items

在*.cshtml的<select>标签里,通过asp-items绑定PageModel中的DropDownOptions,同时用asp-for绑定选中值:

<select asp-for="SelectedItemId" asp-items="Model.DropDownOptions" class="form-control">
    <option value="">请选择选项</option> <!-- 可选的默认提示项 -->
</select>

核心注意事项

  • 必须保证DropDownOptions是public修饰的,否则Razor页面无法访问该属性
  • 初始化SelectList时,要确保值字段和显示字段与你的模型字段完全匹配
  • 如果需要表单提交后回显选中值,SelectedItemId必须添加[BindProperty]特性,且在OnPost方法中也要重新填充DropDownOptions(避免页面刷新后下拉列表为空)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:09:22