Когда я пытаюсь связать в представлении MVC 3 (используя помощник @ Html.DropDownList) список выбора на основе IEnumerable , где X - это пользовательский класс, который я создал, а не класс фреймворка, я получаюошибка «Привязка данных:« MyCustomNamespace.MyCustomClass »не содержит свойство с именем« MyProperty ».».Я не получаю сообщение об ошибке, если я использую SelectListItem или KeyValuePair вместо моего пользовательского класса в IEnumerable - в этом случае он работает нормально.Я предполагаю, что проблема может заключаться в том, что мой пользовательский класс не известен в помощнике Html.DropDownList и, следовательно, там нет доступа?Но я думал, что это должно было работать с использованием отражения и имен свойств, которые я указал во время определения SelectList, так что в этом нет необходимости…?
Вот упрощенная версия моего кода:
// In .cshtml file:
@Html.DropDownList("cmbSection", (SelectList)ViewBag.Section)
// In Controller:
List<MyCustomClass> filters = new List<MyCustomClass>();
MyCustomClass testItem1 = new MyCustomClass { MyProperty = "AAA"};
MyCustomClass testItem2 = new MyCustomClass { MyProperty = "BBB"};
filters.Add(testItem1);
filters.Add(testItem2);
return new SelectList(filters, "AAA", "MyPropertyName", "MyPropertyName");
// Elsewhere:
public class MyCustomClass
{
public string MyProperty
}
Спасибо!