Я пишу свой первый пользовательский элемент управления asp.net.
Он отображает список местоположений, из которых пользователь может выбрать.Я могу загрузить список местоположений в элемент управления и увидеть, какое местоположение выбрал пользователь, когда страница отправляет ответ, но сам список теряется, когда страница отправляет ответ.
Я заполняю списокобъект типа IEnumerable<DetailedLocation>
, где DetailedLocation
- это класс с несколькими полями string
.Когда я пытаюсь поместить список в ViewState, я получаю следующую ошибку:
Type 'System.Linq.OrderedEnumerable`2
[[DetailedLocation, AT.Common, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null],[System.String, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]' in Assembly 'System.Core,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not
marked as serializable.
Конечно, мой тип может быть помечен как сериализуемый, но это сообщение об ошибке сохраняется.Я знаю, что должно быть возможно заставить это работать как-то.В конце концов, я могу передать объект этого типа в GridView
, и данные будут сохраняться до обратной передачи.
Как мне это исправить?