【问题标题】:Binding a dropdown in ASP.NET Core razor page to ado.net stored procedure将 ASP.NET Core 剃须刀页面中的下拉列表绑定到 ado.net 存储过程
【发布时间】:2020-04-21 13:24:27
【问题描述】:

我目前正在学习 ASP.NET 核心 Razor 页面,希望得到一些帮助。

我想创建一个包含存储过程结果的下拉列表。 SP 将带回两列:ID 列和名称列。

我希望用户能够从下拉列表中选择一个名称以进行搜索,但是可以等待。

在使用 EF Core 之前我已经设法做到了,但是现在我使用的是 ADO.NET 和我的 owm SP,我对此没有任何问题。

所以到目前为止我尝试过的是:

型号

public List<SelectListItem> ProjectList { get; set; }`

下面是我试图用来从不同类调用方法以获取下拉数据的方法`

    public IEnumerable<Projects> ProjectList()
    {
        projects = objProject.GetAllProjects().ToList();
        return projects;
    }

然后我正在考虑使用 HTML 标签助手在前端创建下拉菜单,但是我无法确定如何对其进行排序。

我确实认为使用 IEnumerable 是不对的,我应该使用 IActionResult

我会非常感谢任何建议甚至提示

谢谢

【问题讨论】:

    标签: c# razor ado.net asp.net-core-3.0


    【解决方案1】:

    要在 Asp.net core razor 页面中填充下拉列表,您可以在页面中使用 select 标签助手,如下所示:

    <select name="Id" asp-items="Model.ProjectList"></select>
    

    然后在 PageModel 中

    public List<SelectListItem> ProjectList { get; set; }
    
    public void OnGet()
    {
          ProjectList = GetProjectList().Select(p => new SelectListItem
          {
                Value=p.Id.ToString(),
                Text=p.Name
          }).ToList();
    }
    public IEnumerable<Projects> GetProjectList()
    {
          var  projects = objProject.GetAllProjects().ToList();
          return projects;
    }
    

    参考:https://www.learnrazorpages.com/razor-pages/forms/select-lists

    【讨论】:

    • 谢谢你,它解决了我的问题。在我的问题中说排序,我的意思是解决它对不起
    猜你喜欢
    • 2019-07-24
    • 1970-01-01
    • 2021-04-25
    • 2022-11-28
    • 1970-01-01
    • 2021-12-20
    • 2020-06-02
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多