Привязка раскрывающегося списка на странице razor ASP.NET Core к хранимой процедуре ado.net

В настоящее время я изучаю основные страницы Razor ASP.NET, и мне нужна помощь.

Я хочу создать раскрывающийся список, содержащий результаты хранимой процедуры. SP вернет два столбца: столбец идентификатора и столбец имени.

Я бы хотел, чтобы пользователь мог выбрать имя из раскрывающегося списка для целей поиска, но это может подождать.

Мне удавалось это сделать до использования EF Core, но теперь я использую ADO.NET и свой SP owm, с которым у меня нет проблем.

Итак, что я пробовал до сих пор:

Модель

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

Ниже я пытаюсь использовать для вызова метода из другого класса, чтобы получить данные для раскрывающегося списка.

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

Затем я подумываю использовать помощники тегов HTML для создания раскрывающегося списка в интерфейсе, но я не могу точно определить, как его отсортировать.

Я действительно считаю, что иметь IEnumerable неправильно, и я должен использовать IActionResult.

Буду очень признателен за любые советы и даже подсказки

Спасибо


person zaidyy    schedule 02.01.2020    source источник


Ответы (1)


Для заполнения раскрывающегося списка на основных страницах Asp.net вы можете использовать помощник тега 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

person Xueli Chen    schedule 03.01.2020
comment
Спасибо за это, это устранило мою проблему. Сказав сортировать в своем вопросе, я имел в виду решить, извините - person zaidyy; 06.01.2020