我正在构建一个剃须刀页面应用程序,该应用程序需要使用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用户。任何帮助将不胜感激。