2016-04-07 12 views
0

Ich habe eine Teilansicht, die als eine Modalität in anderen Ansicht geladen wird.Kann DropDownListFor in einer Teilansicht nicht binden

-Code in Teilansicht

@Html.DropDownListFor(modal => modal.CompanyName, new SelectList(ViewBag.Companies, "CompanyName", "CompanyName"), "Select Company") 

Und Aktion Daraus resultierende

public ActionResult Add() 
{ 
    Contacts_VM vm = new Contacts_VM(); 
    using (Entities xContext = new Entities()) 
    { 
     ViewBag.Companies = new SelectList(xContext.Companies.ToList(), "CompanyName", "CompanyName"); 
    } 
    return PartialView("~/Views/Contact/_AddEdit.cshtml", vm); 
} 

oben Code Ich bin Fehler

Databinding nachrichten- bekommen: ‚System.Web.Mvc .SelectListItem 'enthält keine Eigenschaft mit dem Namen' CompanyName '.

Wie kann ich das beheben?

Antwort

2

ViewBag.Companies ist bereits ein SelectList, so dass es in der Teilansicht an den Konstruktor eines anderen SelectList übergeben wird, ist falsch. Sie sollten nur in der Lage sein, es passieren:

@Html.DropDownListFor(modal => modal.CompanyName, (SelectList)ViewBag.Companies, "Select Company") 
1

Ändern Sie den Code anzeigen zu

@Html.DropDownListFor(modal => modal.CompanyName, (SelectList)ViewBag.Companies) 

Die ViewBag Eigenschaft ist bereits SelectList, so gibt es keinen Grund, ein anderes identisches daraus zu schaffen (aber wenn Sie hätte es sein müssen, new SelectList(ViewBag.Companies, "Value", "Text"))