ASP.NET + AJAX + WebService: строковый результат + выходной параметр - PullRequest
0 голосов
/ 14 декабря 2010

По своему опыту я называю простые веб-методы, например:

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

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

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 "";
}

Вопрос1: должен ли параметр "out" работать в WS? Я видел несколько статей (например), где сказано, что это невозможно. Вопрос2: если это не работает, как мне изменить сигнатуру метода, чтобы это работало? Вопрос3: если он работает, как я могу получить доступ к данным из параметра «out»?

Спасибо.

1 Ответ

0 голосов
/ 16 декабря 2010

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

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

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

...