最近做項目用到MVC,發現用linq查詢得到的數據是匿名類型對象,通過模型綁定、或者ViewBag、ViewData進行數據傳遞後,View解析報錯:“object 未包含xx的定義”; 沒找到好的解決辦法,就只能通過內部對象一個類型去解決。 所以想到了對內部對象一個類型轉換,轉換成Jobject, ...
最近做項目用到MVC,發現用linq查詢得到的數據是匿名類型對象,通過模型綁定、或者ViewBag、ViewData進行數據傳遞後,View解析報錯:“object 未包含xx的定義”;
沒找到好的解決辦法,就只能通過內部對象一個類型去解決。
所以想到了對內部對象一個類型轉換,轉換成Jobject,使用Jtoken進行轉換,對數據對象進行包裹,然後進行傳遞,View就可以正確解析了,下麵貼一下代碼;如果有好的解決辦法,歡迎留言~~~
using Newtonsoft.Json; using Newtonsoft.Json.Linq; var resList= list.Select(u => { JObject job = new JObject{ new JProperty("Data" ,JToken.FromObject(u)) }; return job; }).ToList();
list就是使用linq查詢獲取到的匿名類型對象,需要先tolist一下轉換為IEnumerable類型再進行select映射
View層的解析就可以拿到對應的數據了。