5

可以从 WebService 向 jQuery 返回两个值。

我试过了

[WebMethod(EnableSession = true)]
public string testing(string testId)
{
    string data = string.Empty;
    string data1 = string.Empty;
    List<test1> datalist1 = new List<test1>();
    List<test> datalist = new List<test>();

    //coding
    data = jsonSerialize.Serialize(datalist1);
    data1 = jsonSerialize.Serialize(datalist);
    return [data,data1];
}

但它显示错误......我们如何从这里的 web 服务返回两个值......

4

5 回答 5

9

另一种方法是创建一个具有您想要的两个返回值的自定义数据类型:

[Serializable]
public sealed class MyData
{
    public string Data { get; set; }
    public string Data1 { get; set; }
}

...

[WebMethod(EnableSession = true)]
public MyData testing(string testId)
{
    string data = string.Empty;
    string data1 = string.Empty;
    List<test1> datalist1 = new List<test1>();
    List<test> datalist = new List<test>();

    //coding
    data = jsonSerialize.Serialize(datalist1);
    data1 = jsonSerialize.Serialize(datalist);
    return new MyData { Data = data, Data1 = data1 };
}

或者

[Serializable]
public sealed class MyData
{
    public List<test> Data { get; set; }
    public List<test1> Data1 { get; set; }
}

...

[WebMethod(EnableSession = true)]
public string testing(string testId)
{
    MyData data = new MyData();
    string alldata = string.Empty;
    List<test1> datalist1 = new List<test1>();
    List<test> datalist = new List<test>();

    //coding
    data.Data = datalist1;
    data.Data1 = datalist;
    alldata = jsonSerialize.Serialize(data);
    return alldata;
}
于 2012-04-17T13:40:06.800 回答
7

那么你可以返回一个字符串数组

public string[] Testing(...)
{
    return new string[] { data, data1 };
}

然后,您需要在客户端上分别执行 JSON 反序列化的每一位,这不太可能令人愉快:(

于 2012-04-17T13:39:00.727 回答
1

return [data, data1]不是有效的 C# 语法。如果要向调用者返回 JSON 数组,请使用JsonSerializer序列化数组并返回结果字符串。

于 2012-04-17T13:39:43.473 回答
1

webmethod 就像一个常规方法,它只能返回一个值。

如果它的类型相同,您可以使用列表或数组。

如果它的类型不同,您可以创建一个保存数据的类

于 2012-04-17T13:40:09.757 回答
0

我试过了

 return jsonSerialize.Serialize(new { list1 = datalist1, list = datalist });

我可以很容易地从我的 jQuery 文件中接收这些。谢谢大家的支持

于 2012-06-27T10:56:59.093 回答