C# 从客户端代码联系服务器上的方法

C# 从客户端代码联系服务器上的方法,c#,asp.net-mvc,asp.net-mvc-5,signalr,C#,Asp.net Mvc,Asp.net Mvc 5,Signalr,我第一次尝试使用SignalR,希望将其添加到我的项目中 我现在的问题是,我无法从服务器获取消息。我得到这个错误: TypeError: signalRhub.Test is not a function 我对脚本的引用如下(似乎有效): -------------------补充资料--------------- 我已经附上了我的Firefox控制台的屏幕截图。在我的客户机代码中,您会注意到以下代码: console.log(signalRhub); 这就是您在Firefox控制台中看到

我第一次尝试使用SignalR,希望将其添加到我的项目中

我现在的问题是,我无法从服务器获取消息。我得到这个错误:

TypeError: signalRhub.Test is not a function
我对脚本的引用如下(似乎有效):

-------------------补充资料---------------

我已经附上了我的Firefox控制台的屏幕截图。在我的客户机代码中,您会注意到以下代码:

console.log(signalRhub);
这就是您在Firefox控制台中看到的。查看名为
connection
的子级,它看起来像是建立了连接。在这里,您可以看到它生成的URL等。查看
服务器
子级(扩展为2级),它似乎找到了服务器上的
Test()
方法

我的Startup.cs看起来像这样(如果重要的话):

有人知道我的问题是什么吗

我希望(尝试做的)是在我的屏幕上获得一个警报,带有以下字符串:

Success from server
这可以在服务器上的C#类中看到。

更改C#代码以发布消息

public string Test() {
   //Clients.Client("ToClientId").TestMessages("Message");//send messages to specific user
   Clients.All.TestMessages("Message"); //send messages to all user
}
发送方法Javascript

像这样的Javascript方法

signalRhub.client.TestMessages = function (response) {
    alert("Response from server: " + response);
};

谢谢,这帮了大忙。注意:signalhub.server.Test()中的Test();必须将其更改为小写才能工作。所以它必须是:signalhub.server.test();
using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(AuthSys.Startup))]
namespace AuthSys
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            app.MapSignalR();
        }
    }
}
Success from server
public string Test() {
   //Clients.Client("ToClientId").TestMessages("Message");//send messages to specific user
   Clients.All.TestMessages("Message"); //send messages to all user
}
signalRhub.server.test();//Note you didn't have created parameter, but you can create them
signalRhub.client.TestMessages = function (response) {
    alert("Response from server: " + response);
};