使用signalr的AJAX Like Call

时间:2014-11-19 10:25:32

标签: javascript asp.net ajax signalr

我正在尝试使用SignalR返回搜索结果。我宁愿在这种情况下不使用AJAX,因为这意味着我必须构建更多的控制器方法等,并且由于我的应用程序主要基于SignalR,我宁愿专门使用它。

My Hub Method返回一些联系人,序列化为Json:

public string SearchContacts(string search) {

    return _serializer.Serialize(_db.Contacts_SearchContacts(search.Trim()).Select(o => new Contact(o.FullName,o.ContactId)).ToList());

}

我的客户端方法调用此方法并反序列化结果:

function findMatches (q,contactsHub) {
    findMatches(q) {
        var matches = contactsHub.server.searchContacts(q);
        return JSON.parse(matches);
    };
}

方法调用正常,服务器方法运行,客户端返回结果但结果字符串总是返回“[object Object]”。我已经检查了服务器上的结果,并且序列化的字符串是正确的,所以不知何故它在返回客户端的路径上丢失/乱码。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

想出来了。它可以简单地通过使用"完成"功能:

function findMatches (q,contactsHub) {
    findMatches(q) {
        contactsHub.server.searchContacts(q).done(function(result) {
            return JSON.parse(result);
        });
    };
}