[英]Access C# List inside Javascript
在服務器端,我創建一個列表
List<object> data = new List<object>();
for (var j = 0; j < items.Count(); j++)
{
var temp = groups.Where(customfilter);
data.Add(Html.Raw(Json.Encode(temp)));
}
System.Web.Script.Serialization.JavaScriptSerializer serializer = new
System.Web.Script.Serialization.JavaScriptSerializer();
var serializedData = serializer.Serialize(data);
在Javascript中,下面的內容不適用於除原始類型之外的任何內容。
var localData = @data;
這是錯誤:
System.Collections.Generic.List`1[System.Object]
我錯過了什么?
我假設你發布的C#代碼是一個Controller動作方法。
您需要讓您的控制器方法返回一個JsonResult,然后使用JSON庫對其進行反序列化。
就像是
public class MyController: Controller
{
public JsonResult MyAction ()
{
var data = new List<object>();
for (var j = 0; j < items.Count(); j++)
{
var temp = groups.Where(customfilter);
data.Add(temp);
}
return Json (data, JsonRequestBehavior.AllowGet);
}
}
請注意在將每個項目添加到列表時不需要序列化每個項目。
從客戶端,您可以調用方法並將結果反序列化為列表。 你可以這樣做:
$.ajax ({ url:'/My/MyAction'}).done (function (data) {
var myList = JSON.parse (data);
});
編輯:
經過一些測試,我發現你可以通過以下方式訪問數據:
var myList = data;
不確定原因,但“數據”直接作為數組發送。
希望能幫助到你!
首先請查看此鏈接http://james.newtonking.com/pages/json-net.aspx
第二
var temp = groups.Where(customfilter).ToList();
如果您使用將其轉換為列表的位置,或者它將類似於查詢對象*(我不記得確切類型)或者如果要選擇一個對象,請嘗試groups.FirstOrDefault
第三
data.Add(temp);
Serializer將完成他的工作來轉換它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.