2012-04-17 3 views
5

Можно вернуть два значения из WebService в jQuery.вернуть два значения из webservice

Я попытался как

[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]; 
} 

но его ошибки показывая .... как мы можем вернуть два значения из веб-сервиса здесь .....

+1

В вашем примере кода есть две синтаксические ошибки, поэтому я не удивлен, что вы видите ошибку. Вы уверены, что это ваш код? – user7116

+1

посмотрите на свой код ... вы начинаете с ** публичной строки ** и что вы возвращаете ??? Чтобы вернуть несколько значений, вы должны вернуть массив значений. –

+0

Извините sixlettervariables и huMpty duMpty это не мой фактический код, я просто хотел знать, что возможно возвращение более чем одного значения из webservice или нет, вот что я показал здесь пример программы – shanish

ответ

-1

Я пытался как

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

и я могу получить это от моего JQuery файл легко. Спасибо всем за поддержку ура

7

Ну вы могли бы вернуть массив строк :

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

Вы бы после этого нужно выполнить каждый бит JSON десериализации отдельно от клиента, который не является, вероятно, будет очень приятно :(

+0

, благодаря которой Jon его работает .... как я могу получить эти два значения в jQuery, если это одно значение, которое я могу получить как «success: function (data) {» – shanish

+0

@Shanish: Я ожидаю, что вы сможете использовать 'data [0]' и ' данные [1] '. Но я не могу сказать, что я сделал какую-либо работу JSON/jQuery ... –

+0

@JonSkeet - C# 4 видел введение возвращаемого кортежа из метода - может ли это быть каким-то образом здесь Jon? –

1

return [data, data1] недействителен C# синтаксис. Если вы хотите вернуть массив JSON вызывающему, используйте JsonSerializer для сериализации массива и возврата результирующей строки.

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; 
} 
+0

благодаря Jesse, actully мы объявили метод как тип String, он показывает ошибку преобразования и как я могу получить эти два значения в моем jQuery ?? – shanish

+0

Затем используйте второй вариант. –

+0

На самом деле мне нужно отображать записи в data и data1 отдельно, вот что я прохожу здесь, я попробовал решение Jon Skeet, его работу, но я не знаю, как получить это значение массива в jQuery, я пробовал получать «успех: function (data, data1) {«...... его ошибка показа – shanish

1

webmethod, как обычный метод, он может только возвращать один значение.

Если в этом же типе вы можете использовать список или массив.

если различные его типы вы можете сделать класс проведения данных

Смежные вопросы