나는 첫 번째 asp.net 사용자 정의 컨트롤을 작성하고있다.사용자 정의 컨트롤로 ViewState 직렬화 오류를 수정하는 방법은 무엇입니까?
사용자가 선택할 수있는 위치 목록을 표시합니다. 컨트롤 목록에 위치 목록을로드 할 수 있으며 페이지가 다시 게시 될 때 사용자가 선택한 위치를 볼 수 있지만 페이지가 다시 게시되면 목록 자체가 손실됩니다.
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
에 전달할 수 있으며 데이터는 다시 게시를 통해 유지됩니다.
어떻게 수정합니까?
간단한 답변과 작동 원리 :-디 –