ASP.NET + AJAX + WebService:字符串结果+输出参数

时间:2010-12-14 03:53:30

标签: javascript web-services asp.net-ajax webmethod

根据我的经验,我称之为简单的网络方法,如下:

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

问题1:WS中的“out”参数应该工作吗?我看到很少的文章(例如)说不可能。 问题2:如果它不起作用,我应该如何更改方法签名以使其可行? 问题3:如果有效,我如何从'out'参数中访问数据?

感谢。

1 个答案:

答案 0 :(得分: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};
}

我的意思是我会返回复杂的对象,它的一个属性将包含返回的常用值和另一个 - 所需的数据。