Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 信号机-Can';无法读取服务器上的查询字符串_C#_Asp.net_Asp.net Mvc_Signalr - Fatal编程技术网

C# 信号机-Can';无法读取服务器上的查询字符串

C# 信号机-Can';无法读取服务器上的查询字符串,c#,asp.net,asp.net-mvc,signalr,C#,Asp.net,Asp.net Mvc,Signalr,我快疯了。我做了chatHub教程,一切都很好。我连接到服务器。我可以向每个客户广播一条消息 然后,我尝试添加查询字符串,因为我希望在同一个会话中,尽可能多的用户可以连接到我的用户,因此我希望获得一些关于我的用户的信息 这是我的javascript (function ($) { // Declare a proxy to reference the hub. var chat = $.connection.chatHub;

我快疯了。我做了chatHub教程,一切都很好。我连接到服务器。我可以向每个客户广播一条消息

然后,我尝试添加查询字符串,因为我希望在同一个会话中,尽可能多的用户可以连接到我的用户,因此我希望获得一些关于我的用户的信息

这是我的javascript

(function ($) {
            // Declare a proxy to reference the hub.
            var chat = $.connection.chatHub;
            //chat.state.userName = "test";
            //chat.qs = "userToken3=blablabla";
            chat.qs = { 'uid' : '2541fdsf862d' };
            //$.connection.chatHub.qs = {"userToken2" : 125457};
            // Create a function that the hub can call to broadcast messages.
            chat.client.broadcastMessage = function (name, message) {
                // Html encode display name and message.
                var encodedName = $('<div />').text(name).html();
                var encodedMsg = $('<div />').text(message).html();
                // Add the message to the page.
                $('#discussion').append('<li><strong>' + encodedName
                    + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
            };
            // Get the user name and store it to prepend to messages.
            //$('#displayname').val(prompt('Enter your name:', ''));
            // Set initial focus to message input box.
            $('#message').focus();
            // Start the connection.
            $.connection.hub.start({ 'uid': '2541fdsf862d' }).done(function () {
                $('#sendmessage').click(function () {
                    // Call the Send method on the hub.
                    chat.server.send("user", $('#message').val());
                    // Clear text box and reset focus for next comment.
                    $('#message').val('').focus();
                });
            });
        })(jQuery);
在这种情况下,uid为null。如果我查看服务器上的send方法:

[Authorize]
public void Send(string name, string message)
{
    // Call the broadcastMessage method to update clients.
    Clients.All.broadcastMessage(name, message);
    var queryString = Context.Request.QueryString;
    var context = Context;
}
queryString
变量中没有
uid


我的代码有什么问题?有人有什么线索吗?

我刚刚找到了解决办法。这是因为我必须通过
$.connection.hub
传递查询字符串,而不是通过
chat.qs

因此,解决办法是

$.connection.hub.qs = { 'uid': '2541fdsf862d' };

如果要从JavaScript在signalR OnConnect中传递参数,请将它们添加到connection.qs属性。e、 g

self.hubConnection = $.hubConnection();
self.hubConnection.qs = { param1: value, param2: value };
然后在信号器集线器中的OnConnect方法中,通过

var param1 = this.Context.QueryString["param1"];
var param2 = this.Context.QueryString["param2"];
var param1 = this.Context.QueryString["param1"];
var param2 = this.Context.QueryString["param2"];