如何使用Razor页面将数据从数据库查询传递到IEnumerable <selectlistitem>,以显示在选择下拉列表中

时间:2019-05-10 02:45:09

标签: razor-pages

我正在构建一个剃须刀页面应用程序,该应用程序需要使用SQL数据库在选择下拉列表中填充数据。我在将数据从数据库传递到IEnumerable时遇到问题。我如何传递这些数据。我可以访问数据模型,但是我不确定如何将其传递给IEnumerable。

我查阅了许多有关从数据库填充数据的文章,但是它们都需要使用EntityFrameworkCore,而这并不是我们在工作中所用的东西。

Login.cshtml.cs:应该从数据库中获取数据的模型

  public class LoginModel : PageModel
    {
        public string UserName { get; set; }
        public IEnumerable<SelectListItem> Users { get; set; }


        public void OnGet()
        {

        }

Login.cshtml:显示选择下拉列表的视图

<div class="container">
    <h1>Login</h1>
    <div class="form-group">
        @Html.LabelFor(x => Model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-5">
            @Html.DropDownListFor(x => Model.UserName, new SelectList(Model.Users, "Value", "Text"), htmlAttributes: new { @class = "form-control", id = "Users" })
        </div>
    </div>

</div>

QueryProvider.cs:可从此处的SQL Server访问数据

 public static IEnumerable<PartyWithRole> UserWithRoleList()
        {
            using (SqlConnection dbConn = new SqlConnection(connStr))
            {
                return dbConn.Query<PartyWithRole>("dbo.api_UserWithRoleList", commandType: CommandType.StoredProcedure);
            }
        }

我希望html select下拉列表填充QueryProvider.cs文件中UserWithRoleList()返回的数据库查询返回的值。我不知道如何将值从QueryProvider.cs中的UserWithRoleList()传递到Login.cshtml.cs中的IEnumerable用户。任何帮助将不胜感激。

0 个答案:

没有答案