我正在尝试使用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]”。我已经检查了服务器上的结果,并且序列化的字符串是正确的,所以不知何故它在返回客户端的路径上丢失/乱码。
我错过了什么?
答案 0 :(得分:1)
想出来了。它可以简单地通过使用"完成"功能:
function findMatches (q,contactsHub) {
findMatches(q) {
contactsHub.server.searchContacts(q).done(function(result) {
return JSON.parse(result);
});
};
}