我尝试批量编辑多行,我在其中使用状态列表进行编辑。
但是,我的列表不会为每一行设置正确的值,因为它总是选择列表中的第一项。我一无所知,并且询问是否有人知道原因以及解决方案是什么。
仅在批量编辑时发生,而不在任何其他单行编辑视图中发生。区别在于我循环遍历列表来设置和呈现值。只是为了更清楚:)
提前致谢!
控制器
[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>
}
输出
答案 0 :(得分:1)
SYNC
中的
item.Product.StatusId
已经是item
,请尝试:
Product
而不是
item.StatusId
答案 1 :(得分:1)
通过这样做来解决:
@Html.DropDownListFor(m => item.StatusId, new SelectList(Model.ProductStatus, "Value", "Text", item.StatusId), new { @class = "form-control status-select" })