我正在嘗試批量編輯多行,其中我使用其他編輯狀態的列表進行編輯。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' –