2016-04-07 12 views
0

私は、他のビューでモーダルとして読み込まれる部分的なビューを持っています。部分ビューでDropDownListForをバインドできません

コードは、コードの上に使用

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

とアクションResult-

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

部分図で、私はエラーが

データバインディングmessage-取得しています。「System.Web.Mvcを.SelectListItem 'に' CompanyName 'という名前のプロパティが含まれていません。

どうすれば解決できますか?

答えて

2

ViewBag.Companiesは既にSelectListであるため、部分ビューで別のSelectListのコンストラクタに渡すのは間違いです。あなたはそれを通過することができるはずです。

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

変更ビューコード

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

ViewBagプロパティが既にSelectListあるので、何のポイントそれから、別の同一のものを作成する(ただし場合はありませんそれはnew SelectList(ViewBag.Companies, "Value", "Text")である必要があります)