簡體   English   中英

MVC 視圖 - 無法在選擇下拉列表中填充列表

[英]MVC View-Unable to populate list in the select drop down

我正在嘗試在razor page 中實現一個簡單的選擇下拉菜單 我不確定我是否錯過了任何東西,下拉菜單根本沒有填充。 僅出於演示目的,我使用硬編碼的字符串值來填充下拉列表。

我有一個名為帖子的列表。

        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。 在此處輸入圖片說明

誰能幫我弄清楚我錯過了什么?

列表未呈現,因為未啟用標簽助手。 檢查是否直接在 Views 文件夾下的_ViewImports.cshtml添加以下行

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

控制器

 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM