Frage

Ich zog auf und kam dann auf diese zurück, aber ich bin immer noch nicht in der Lage, es zu Arbeit zu erhalten.

        var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id);
        IEnumerable<Guid> selectedList = companiesList.Select(a => a.Id);
        Companies = new MultiSelectList(companiesList, "Id", "Name", selectedList);

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

Ausblick:

        <p>
            <label for="Companies">Company:</label>
            <%= Html.ListBox("Companies", Model.Companies) %>
            <%= Html.ValidationMessage("Companies", "*") %>
        </p>

erzeugten 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>
War es hilfreich?

Lösung

Ich fand die Lösung. Die List-Box muss einen anderen Namen aus dem MultiSelectList hat. Ich umbenannt MultiSelectList in meinem ursprünglichen Code, und es funktioniert. Ich will nicht einmal beginnen, über die Höhe der Zeit, die ich dafür ausgegeben zu denken!

Andere Tipps

Dies ist eine hässliche Arbeit um für jetzt. Stellen Sie Ihr Bildschirmtextsystem mit den Werten, die Sie ausgewählt werden sollen.

ViewData["Companies"] = new string[] { "guid-1", "guid-2" };

Ich versuche immer noch zu debuggen und zu sehen, warum dies geschieht. Suprisingly der Unit-Test für diesen Anwendungsfall in dem MVC-Projekt funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top