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

如何在ASP.NET MVC Razor Pages视图下拉框显示分支列表

解决ASP.NET MVC Razor Pages视图访问PageModel数据填充下拉框问题

1. 确保PageModel中的视图模型属性可被视图访问

首先检查你的AddUser.cshtml.cs,必须将userModel定义为public属性,视图才能读取它的数据:

public class AddUserModel : PageModel
{
    // 定义为public属性,让视图可以访问
    public AddUserViewModel userModel { get; set; }

    // 假设你有数据库访问服务
    private readonly IBranchService _branchService;

    public AddUserModel(IBranchService branchService)
    {
        _branchService = branchService;
    }

    public async Task OnGet()
    {
        userModel = new AddUserViewModel();
        // 从数据库获取分支数据赋值
        userModel.Branches = await _branchService.GetAllBranchesAsync();
    }
}

2. 在视图中绑定模型并生成下拉框

在AddUser.cshtml中,先指定视图绑定的PageModel类型,然后用两种方式生成下拉框:

方式一:使用Html辅助方法(DropDownListFor)

@model YourProjectNamespace.AddUserModel

<div class="form-group">
    <label asp-for="userModel.SelectedBranchId">选择分支</label>
    @Html.DropDownListFor(
        m => m.userModel.SelectedBranchId, 
        // 构造SelectList:数据源、值字段、显示文本字段
        new SelectList(Model.userModel.Branches, "iBranchCode", "vBranchDesc"), 
        "请选择分支", // 默认占位选项
        new { @class = "form-control" } // 样式属性
    )
    <span asp-validation-for="userModel.SelectedBranchId" class="text-danger"></span>
</div>

方式二:使用原生HTML select标签(手动循环)

@model YourProjectNamespace.AddUserModel

<div class="form-group">
    <label for="SelectedBranchId">选择分支</label>
    <select asp-for="userModel.SelectedBranchId" class="form-control">
        <option value="">请选择分支</option>
        @foreach (var branch in Model.userModel.Branches)
        {
            <option value="@branch.iBranchCode">@branch.vBranchDesc</option>
        }
    </select>
    <span asp-validation-for="userModel.SelectedBranchId" class="text-danger"></span>
</div>

关键注意事项

  • 视图的@model必须指向你的PageModel类(即AddUserModel),而非AddUserViewModel
  • 确保SelectList中的字段名称与Branch模型的属性完全匹配:iBranchCode(值)、vBranchDesc(显示文本)
  • 如果userModel在OnGet中未初始化,会导致空引用异常,务必提前实例化userModel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:12:19