我正在尝试批量编辑多行,其中我使用其他编辑状态的列表进行编辑。Dropdownlistfor在批量编辑时始终选择的第一个值
但是,我的列表不会为每一行设置正确的值,因此它总是选择列表中的第一项。我无能为力,询问是否有人知道为什么以及解决方案是什么。
这只发生在批量编辑时,而不在其他任何单行编辑视图中。不同之处在于我正在通过列表循环来设置和呈现值。只是要额外清楚:)
在此先感谢!
控制器
[HttpGet]
public ActionResult BatchEdit(string search, int organization)
{
var products = _classService.Get(search, organization);
var statusList = _productService.GetStatus();
var batchEditViewModel = new BatchEditViewModel(products, statusList);
return View("BatchEdit", batchEditViewModel);
}
视图模型
public BatchEditViewModel(List<Product> products, List<ProductStatus> productStatus)
{
Products = products;
ProductStatus = SetStatus(productStatus);
}
public IEnumerable<SelectListItem> ProductStatus { get; set; }
private IEnumerable<SelectListItem> SetStatus(IEnumerable<ProductStatus> productStatus)
{
return new SelectList(productStatus, "Id", "Title");
}
查看
@foreach (var item in Model.Products)
{
<div class="col-md-6 form-group">
<label>Status</label>
@Html.DropDownListFor(m => item.StatusId, Model.ProductStatus, new { @class = "form-control" })
</div>
}
输出
你在执行'返回视图(模型)'之前设置**'m => m.Product.StatusId' **吗? –
@MaximilianAst是的,我:)用控制器更新了问题,忘了添加它。 – Rovdjuret
你在哪里定义'Product'我只能找到'Products' –