2012年10月1日 星期一

{C#} ViewState 出現未將xx序列化問題

當將一集合傳給Viewstate資料來源時,
如是用自定義類別產成之集合,會出現類似下列的錯誤訊息

未將型別 'FormJSON' 標記為可序列化


 ViewState內的資料,只是傳化為畫面上隱藏欄位
<input type="hidden" value=".....">
 故要將自定類別轉為序列化狀態

public void Page_Load()
{
    var serializer = new JavaScriptSerializer();
    var itemsResult = serializer.Deserialize<FormJSON>(FormDataSource.Value); 
}



[Serializable]
        public class FormJSON
        {
            public int FormId { set; get; }

            public string Title { set; get; }

        }


 參考資料:
http://w3937.pixnet.net/blog/post/78687168-%5Basp.net%5D-%E5%88%A9%E7%94%A8viewstate%E4%BF%9D%E5%AD%98%E8%87%AA%E8%A8%82%E7%89%A9%E4%BB%B6