2015-07-13 3 views
0

Я пытаюсь отредактировать несколько строк, где я использую список со статусом среди других для редактирования.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); 
} 

ViewModel

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> 
} 

Выходной

enter image description here

+1

Вы устанавливаете ** 'm => m.Product.StatusId' ** перед выполнением' return View (Model) '? –

+1

@MaximilianAst Да, я :) Обновленный вопрос с контроллером, забыли добавить его. – Rovdjuret

+1

где вы определяете «Продукт», я могу найти только «Продукты» –

ответ

1

в item.Product.StatusId

item уже Product так попробовать:

item.StatusId 

вместо

item.Product.StatusId 
+0

Извините, это моя вина. Я случайно положил его туда. Это как вы сказали, но все равно не сработает:/ – Rovdjuret

1

решаемые с помощью делаешь g, как это установлено:

@Html.DropDownListFor(m => item.StatusId, new SelectList(Model.ProductStatus, "Value", "Text", item.StatusId), new { @class = "form-control status-select" }) 
+0

Кажется логичным. Я полностью забыл. :) –

+0

@MaximilianAst Я высоко ценю все предложения/помощь, которые я получил от вас, спасибо товарищу :) – Rovdjuret

Смежные вопросы