我有一个局部视图,在其他视图中作为模态加载。
部分视图中的代码
@Html.DropDownListFor(modal => modal.CompanyName, new SelectList(ViewBag.Companies, "CompanyName", "CompanyName"), "Select Company")
行动结果 -
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);
}
使用上面的代码我收到错误消息 -
DataBinding:' System.Web.Mvc.SelectListItem'不包含名称为' CompanyName'。
的媒体资源
我该如何解决这个问题?
答案 0 :(得分:2)
ViewBag.Companies
已经是SelectList
,因此在局部视图中将其传递给另一个SelectList
的构造函数是不正确的。你应该能够通过它:
@Html.DropDownListFor(modal => modal.CompanyName, (SelectList)ViewBag.Companies, "Select Company")
答案 1 :(得分:1)
将视图代码更改为
@Html.DropDownListFor(modal => modal.CompanyName, (SelectList)ViewBag.Companies)
ViewBag
属性已经SelectList
,所以没有必要从中创建另一个相同的属性(但如果你这样做,则需要new SelectList(ViewBag.Companies, "Value", "Text")
)