Как передать данные в IEnumerable <SelectListItem>из запроса к базе данных для отображения в раскрывающемся списке выбора с помощью страниц Razor - PullRequest
0 голосов
/ 10 мая 2019

Я создаю приложение для бритвенных страниц, которому необходимо заполнить данные в раскрывающемся списке выбора с использованием базы данных 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 здесь

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

Я ожидаю, что раскрывающийся список html выберите значения, возвращаемые запросом к базе данных, возвращенным UserWithRoleList (), в файле QueryProvider.cs.Я не знаю, как передать значение из UserWithRoleList () в QueryProvider.cs для IEnumerable пользователей в Login.cshtml.cs.Любая помощь будет высоко ценится.

...