5

WebService から jQuery に 2 つの値を返すことが可能です。

のようにしてみました

[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サービスから2つの値を返すにはどうすればよいですか.....

4

5 に答える 5

9

もう 1 つの方法は、必要な 2 つの戻り値を持つカスタム データ型を作成することです。

[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 は通常のメソッドに似ており、値を1 つだけ返すことができます。

同じタイプの場合は、リストまたは配列を使用できます。

異なるタイプの場合、データを保持するクラスを作成できます

于 2012-04-17T13:40:09.757 に答える
0

私はのように試しました

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

これらはjQueryファイルから簡単に受け取ることができます。皆様のご支援ありがとうございました

于 2012-06-27T10:56:59.093 に答える