Pourquoi pas la liste des éléments sélectionnés multiselect montre? MVC
-
22-09-2019 - |
Question
je suis parti et suis revenu à cela, mais je suis toujours incapable de le faire fonctionner.
var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id);
IEnumerable<Guid> selectedList = companiesList.Select(a => a.Id);
Companies = new MultiSelectList(companiesList, "Id", "Name", selectedList);
Dans 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
};
}
Voir:
<p>
<label for="Companies">Company:</label>
<%= Html.ListBox("Companies", Model.Companies) %>
<%= Html.ValidationMessage("Companies", "*") %>
</p>
produit html:
<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>
La solution
J'ai trouvé la solution. Le ListBox doit avoir un nom différent de celui MultiSelectList. Je renommé le MultiSelectList dans mon code d'origine, et il fonctionne. Je ne veux pas même commencer à penser à la quantité de temps passé à ce sujet!
Autres conseils
Voici un travail laid autour pour l'instant. Définissez vos ViewData avec les valeurs que vous souhaitez sélectionnée.
ViewData["Companies"] = new string[] { "guid-1", "guid-2" };
J'essaie toujours de déboguer et de voir pourquoi cela se passe. Etonnamment le test unitaire pour ce cas d'utilisation dans le projet MVC fonctionne très bien.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow