美好的一天 我有以下代码:
$('#ElementId').click(function () {
$.ajax({
type: "POST",
url: "URL",
data: {//DATA }
})
.done(function (result) {
FillList(result);
});
}
function FillList(result)
{
var chat = $.connection.chatHub;
chat.server.setResult(result);
}
我想从AJAX调用获取数据并将它们传递给SignalR,但我无法让它工作。 AJAX完成了它的工作但是当我尝试向SignaR Hub发送数据时没有任何反应。 如有任何帮助,请提前感谢
更新
虽然当我在没有AJAX的情况下调用该函数时,上述方法不起作用,但它可以工作:
$('#ElementId').click(function () {
FillList("Test");
}
更新#2 这就是有问题的函数在SIgnalR中的表现
public void SetResult(string TestJSON)
{
try
{
if (!String.IsNullOrEmpty(TestJSON))
{
//TODO
}
}
catch (Exception ex)
{
throw ex
}
}
答案 0 :(得分:0)
我看到两种可能的情景
result
为JSON
而非string
,因此请确保您将string
传递给SignalR
,否则将无法触发: chat.server.setResult(JSON.stringify(result));
hub
的连接。要确保没有数据类型不匹配,请调用没有参数的服务器函数,看看它是否被命中: chat.server.setResult();
和
public void SetResult()
在更新后,我确信您将JSON
传递到您的中心,但它期待string
...所以请选择#1