[英]ASP.NET MVC - How to pass a list from controller to view to populate dropdown?
我的“类别”模型有一个“创建”视图,它应该允许用户选择将存储“类别”的仓库(另一个模型)(使用下拉菜单)。 由于我无法将 2 个视图模型传递给单个视图,我如何访问 Category.Create 视图中的仓库名称?
@model InventoryManSys.Models.Category
@{
ViewData["Title"] = "Create";
}
<h1>Create</h1>
<h4>Category</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Warehouse" class="control-label"></label>
<select asp-for="Warehouse" class ="form-control" asp-items="ViewBag.Warehouses"></select>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
我听说 ViewBag 是不好的做法,对吗?
您可以在视图模型上使用子属性,或者只使用视图数据。 不确定viewbag。 但可能它可能会有所帮助。
ViewData和ViewBag的区别总结
如果您可以在类别视图模型中包含新属性,请考虑包含仓库名称列表。
您可以在视图中使用以下代码在下拉列表中显示仓库名称:
@Html.DropDownListFor(model => model.SelectedWarehouse, new SelectList(Model.WarehouseNames))
上面的代码还将您的选择分配给类别视图模型中名为SelectedWarehouse
的属性。
我在我的项目中使用选择列表。 我认为以下两个链接可以帮助您。 祝你好运
https://www.c-sharpcorner.com/article/net-core-5-dropdownlist/
https://www.compilemode.com/2021/06/dropdown-list-in-asp-net-core-mvc.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.