繁体   English   中英

将 ASP.NET Core razor 页面中的下拉列表绑定到 ado.net 存储过程

[英]Binding a dropdown in ASP.NET Core razor page to ado.net stored procedure

我目前正在学习 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

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

谢谢

要在 Asp.net 核心 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM