是否可以将两个值从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];
}
但显示错误....我们如何从webservice返回两个值.....
答案 0 :(得分: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;
}
答案 1 :(得分:7)
那么你可以返回数组字符串:
public string[] Testing(...)
{
return new string[] { data, data1 };
}
然后,您需要在客户端上单独执行JSON反序列化的每一位,这不太可能非常令人愉快:(
答案 2 :(得分:1)
return [data, data1]
无效的C#语法。如果要将JSON数组返回给调用者,请使用JsonSerializer
序列化数组并返回结果字符串。
答案 3 :(得分:1)
web方法就像常规方法一样,它只能返回一个值。
如果它的类型相同,则可以使用列表或数组。
如果它的类型不同,你可以创建一个持有数据的类
答案 4 :(得分:0)
我试过
return jsonSerialize.Serialize(new { list1 = datalist1, list = datalist });
我可以轻松地从我的jQuery文件中收到这些内容。谢谢大家的支持