2010-12-14 2 views
0

В моем опыте я называю простые веб-методы, например:ASP.NET + AJAX + WebService: строка результата + из параметра

[WebMethod] 
public List<string> GetUserListByLetters(string strLetters){ ... } 

А вот мой OnComplete JS-функция:

function OnComplete(args) { 
    ... 
    if (args != "") { 
     for (var i = 0; i < args.length; i++) { 
      // Do what I need with string in args[i] 
     } 
    } 
    ... 
} 

Сейчас я хотел бы иметь такой метод:

[WebMethod] 
public string GetUserListByCountry(int countryId, out List<User> users) 
{ 
    users=null; 
    if (Validate(countryId)==false) 
     return "wrong country Id"; 
    users = GetUsers(countryId); // returns list of User objects. 
    return ""; 
} 

Question1: СЛЕДУЕТ «из» параметров работы в WS? Я видел несколько статей (например), где сказал, что это невозможно. Вопрос2: если он не работает, как мне изменить подпись метода, чтобы получить эту работоспособность? Вопрос 3: если он работает, как я могу получить доступ к данным из параметра 'out'?

Спасибо.

+0

Почему бы не просто вернуть 'Список '? – Jonathan

+0

Как я могу вернуть сообщение об ошибке? – Budda

ответ

0

Я буду использовать этот подход:

[WebMethod] 
public object GetUserListByCountry(int countryId) 
{ 
    users=null; 
    if (Validate(countryId)==false) 
     return "wrong country Id"; 
    users = GetUsers(countryId); // returns list of User objects. 
    return new {Error="", Users=users}; 
} 

я имею в виду, что я вернусь сложный объект, его одно свойство будет содержать обычное значение для возвращения и другие - необходимые данные.

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