我正在尝试在剃刀页中实现一个简单的 select下拉列表。我不确定是否错过任何内容,但下拉列表根本不会出现。出于演示目的,我使用了硬编码的字符串值来填充下拉列表。
我有一个名为帖子的列表。
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时,我可以看到列表根本没有处理。
有人可以帮我弄清楚我错过了什么吗?
答案 0 :(得分:1)
该列表未呈现,因为未启用标签助手。检查是否将以下行添加到_ViewImports.cshtml
的“视图”文件夹的正下方
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
答案 1 :(得分:1)
控制器
test_db
剃刀
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" })