Controller ViewBag如下:
ViewBag.Products = new SelectList(await _productService.GetAllProduct(), "ProductId", "ProductName");
Razor 页面 DropDownList 标签助手如下:
@Html.DropDownList("ProductId", (IEnumerable<SelectListItem>)ViewBag.Products, "Select Product", new { @class ="form-control" })
当我选择下拉列表的值并提交产品时无法返回给控制器,它返回空值
期待 productId 返回给控制器。
根据你的描述,我猜控制器的参数有问题。模型绑定将检查客户端发布值并自动映射产品 ID。
下拉列表代码看起来不错。
我也写过这样的测试demo:
<form asp-action="ProductUpdate">
@Html.DropDownList("ProductId", (IEnumerable<SelectListItem>)ViewBag.Products, "Select Product", new { @class ="form-control" })
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
比如你的产品ID是int值,那么你应该这样设置action:
[HttpPost]
public async Task<IActionResult> ProductUpdate(int ProductId)
{
if (ModelState.IsValid)
{
}
return View( );
}
结果: