[英]DropDownlist in Modal popup
我正在嘗試使用 controller 中定義的 viewbag 填充 DropDownlist,並且我使用了模式彈出窗口:
產品控制器.cs
public IActionResult Create()
{
List<Category> categories = _dbcontext.Category.ToList();
ViewBag.bpCategories = new SelectList(categories, "CategoryId", "CategoryName");
Product product = new Product();
return PartialView("_AddProductPartialView",product);
}
_AddProductPartialView.cshtml:
@model WebApplication1.Models.Product
<div class="modal fade" role="dialog" tabindex="-1" id="addProduct" aria-labelledby="addProductLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addProductLabel">Products</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form asp-action="Create" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
......
<div class="form-group">
<label asp-for="CategoryId" class="control-label">CategoryId</label>
@Html.DropDownListFor(m => m.CategoryId, ViewBag.bpCategories as IEnumerable<SelectListItem>, "--Select ---", new { @class = "form-control" })
</div>
...
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
但是我得到了這個錯誤:
具有鍵“CategoryId”的 ViewData 項的類型為“System.Int32”,但類型必須為“IEnumerable”。
那么在模式彈出窗口中填充 DropDownlist 的正確方法是什么?
編輯
我也試過這段代碼,但我得到一個空的下拉列表:
<select asp-for="CategoryId" class="form-control" asp-items="ViewBag.bpCategories"></select>
以下帶有測試數據的代碼片段可以很好地填充下拉列表,您可以參考它。
List<Category> categories = new List<Category>
{
new Category
{
CategoryId = 1,
CategoryName = "Category1"
},
new Category
{
CategoryId = 2,
CategoryName = "Category2"
},
new Category
{
CategoryId = 3,
CategoryName = "Category3"
}
};
ViewBag.bpCategories = categories.AsQueryable().Select(s => new SelectListItem { Value = s.CategoryId.ToString(), Text = s.CategoryName }).ToList();
在視圖頁面
<select asp-for="CategoryId" class="form-control" asp-items="ViewBag.bpCategories as List<SelectListItem>"></select>
測試結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.