MVC View-Невозможно заполнить список в выпадающем списке выбора - PullRequest
2 голосов
/ 03 июля 2019

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

У меня есть список названных сообщений.

        var posts = new List<BlogDetails>();

        posts.Add(
        new BlogDetails {
            Id = 1,
            Author = "Charles",
            Title = "Finding Charles",
            Body = "This is a great blog post",
            PostedOn = DateTime.Now
        });

     ViewBag.listOfItems = posts;
     return View();

В Index.cshtml я пытаюсь заполнить раскрывающийся список, используя этот список.

    <select asp-for="Id" asp-items="@(new SelectList(ViewBag.listOfItems, "Id", "Author"))">
    <option>Please select one</option>
    </select>

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

Ниже приведен HTML-код. enter image description here

Может кто-нибудь помочь мне выяснить, что я пропустил?

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Контроллер

 var posts = new List<BlogDetails>();

    posts.Add(
    new BlogDetails {
        Id = 1,
        Author = "Charles",
        Title = "Finding Charles",
        Body = "This is a great blog post",
        PostedOn = DateTime.Now
    });

 ViewBag.listOfItems =  new SelectList(posts, "Id", "Author");
 return View();

Бритва

@Html.DropDownListFor(model => model.post, (IEnumerable<SelectListItem>)ViewBag.listOfItems, "--Select Post--", new { @class = "form-control" })

Или вы можете попробовать это

  <select>
    @foreach(var item in ViewBag.listOfItems)
    {
      <option value="@item.Id">@item.Author<option>
    }
    </select>
1 голос
/ 04 июля 2019

Список не отображался, поскольку помощники тегов не были включены. Проверьте, добавляете ли вы строку ниже в _ViewImports.cshtml прямо в папке «Виды»

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...