JQuery ajax 从 c# 函数返回列表

9 浏览
0 Comments

JQuery ajax 从 c# 函数返回列表

当我试图将C#和jQuery一起使用时,我有些困惑。我有一个.cs文件和一个javascript文件在同一个解决方案/项目中。我的C#函数返回一个字符串列表,我想用JavaScript将其附加到一些HTML数据上。我还在我的HTML中使用一个WebForm。在javascript端是否可以返回我的列表?\njavascript\n

$(function () {
    $.ajax({
        type: "GET",
        url: "Test/GetListData", 
        dataType: "data: Array" //类似这样的东西?
    });
    //我可以返回列表并在这里使用它吗?
});

\nc#方法\n

public List GetListData()
{
    List mylist = new List();
    mylist.Add("test1");
    mylist.Add("test2");
    mylist.Add("test3");
    return mylist;
}

0
0 Comments

在上述代码中,使用了jQuery的ajax方法来从一个C#函数中返回一个列表。然而,这段代码可能会遇到一些问题。下面将介绍问题的原因以及解决方法。

问题的原因是代码中的url属性指向了一个名为"WebService.asmx/GetListData"的地址。这个地址可能是错误的,或者在服务器上不存在。这会导致ajax请求失败,OnSuccess函数和OnError函数都不会被调用。

解决方法是确保url属性指向正确的地址。可以通过查看服务器端代码,确认WebService.asmx文件的位置以及GetListData函数的名称是否正确。如果地址是正确的,还需要确保服务器上的WebService.asmx文件已经被正确部署。

另外,还需要确保服务器端的GetListData函数返回的数据格式是符合期望的。在代码中,OnSuccess函数尝试遍历data.all数组,并输出每个元素的textContent属性。如果服务器返回的数据格式不符合这个要求,代码可能会出现错误。

最后,需要确保服务器端的GetListData函数能够正确地返回一个列表。这可能需要在服务器端的C#代码中进行相应的修改,以确保返回的数据是一个正确格式的列表。

通过检查和修改以上几个方面,可以解决这个问题,使得ajax请求能够成功返回一个列表,并在前端页面中进行相应的处理。

0
0 Comments

在仔细研究后,我意识到我以错误的方式解决了我的问题。我希望在同一个项目的C#中,通过javascript/html与C#进行通信。使用列表是一个坏主意,因为我的javascript无法有效地看到它,除非我将其格式化为一个大的JSON字符串。这是解决我的问题的更新代码,希望能帮助到其他人。[ComVisible(true)]允许名为test的外部窗口看到我的C#函数,而$.parseJSON(myarray)能够将我的JSON字符串解析成可用的数组。

C#代码:

[ComVisible(true)]
public string GetData()
{
    string test = "[{"Name": "test1"}, {"Name": test2"}, {"Name": "test3"}]";
    return test;
}

Javascript代码:


你是不是意思是将{"Name": test2"}改为{"Name": "test2"}

0
0 Comments

问题的原因是在使用JQuery时,需要将C#函数返回的列表序列化为JSON格式,以便能够在JQuery中使用该数据。解决方法是使用JavaScriptSerializer类将列表序列化为JSON对象。

在这个问题中,作者引用了一个帖子中的代码示例,展示了如何使用JavaScriptSerializer类将列表序列化为JSON格式。首先,通过添加以下代码引用来使用JavaScriptSerializer类:

using System.Web.Script.Serialization;

然后,创建一个JavaScriptSerializer的实例,并使用Serialize方法将列表对象序列化为JSON字符串:

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(aList);

通过将列表序列化为JSON格式,可以使数据更加整洁且轻量化,并且可以通过JQuery轻松解析JSON对象。这是最简单的方法。

作者感谢了这个提示,并在下面的答案中说明了他是如何解决自己的问题的,但没有提供具体的代码示例。

0