¿Por qué está lista no multiselect mostrando los elementos seleccionados? MVC
-
22-09-2019 - |
Pregunta
Me movía y luego volvió a esto, pero sigo siendo incapaz de conseguir que funcione.
var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id);
IEnumerable<Guid> selectedList = companiesList.Select(a => a.Id);
Companies = new MultiSelectList(companiesList, "Id", "Name", selectedList);
En SubcontractRepository.cs
public class SelectCompanyItem
{
public string Name { get; set; }
public Guid Id { get; set; }
}
public IEnumerable<SelectCompanyItem> SubcontractCompanies(Guid id)
{
return
from c in db.companies
select new SelectCompanyItem
{
Name = c.company_name,
Id = c.company_id
};
}
Ver:
<p>
<label for="Companies">Company:</label>
<%= Html.ListBox("Companies", Model.Companies) %>
<%= Html.ValidationMessage("Companies", "*") %>
</p>
html producido:
<p>
<label for="Companies">Company:</label>
<select id="Companies" multiple="multiple" name="Companies"><option value="4cf411d0-e111-488b-822f-ea194951cfda">Second Company</option>
<option value="1c21e613-a668-4817-bf6d-73befb8c9dbd">Test Company</option>
</select>
</p>
Solución
I encontró la solución. El cuadro de lista debe tener un nombre diferente del MultiSelectList. Me cambió el nombre del MultiSelectList en mi código original, y funciona. Yo no quiero ni siquiera empezar a pensar en la cantidad de tiempo que se gasta en esto!
Otros consejos
Este es un trabajo en torno fea por ahora. Establecer su ViewData con los valores que desea seleccionado.
ViewData["Companies"] = new string[] { "guid-1", "guid-2" };
Todavía estoy tratando de depurar y ver qué está sucediendo esto. Sorprendentemente la prueba Unidad para este caso de uso en el proyecto MVC funciona bien.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow