gpt4 book ai didi

c# - 在 Javascript 中访问 C# 列表

转载 作者:行者123 更新时间:2023-11-29 15:41:29 27 4
gpt4 key购买 nike

在服务器端我创建了一个列表

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 操作方法。

您需要让 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;

不知道为什么,但是“数据”直接作为数组发送。

希望对您有所帮助!

关于c# - 在 Javascript 中访问 C# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347271/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com