如果没有在 Signalr Chat 中输入用户名,如何显示默认用户名

How to Display a Default Username if no Username is Entered in Signalr Chat

使用站点 code.msdn.microsoft.com/SignalR-Getting-Started-b9d18aa9 上的 SignalR 入门应用程序,当用户单击确定而不输入用户名时,我如何将默认显示从大点更改为 "Anonymous" ?

我是 javascript 的新手。我在代码中搜索了用户名引用和点,但无济于事。例如,在行下方的 default.html 文件中(大约 #40):

$('#displayname').val(prompt('Enter your name:', ''))

我补充道:

if ($('#displayname').val() != '' || $('#displayname').val() == null)
        {
            $('#displayname').val(prompt('Enter your name:', ''))
        }

        else if ($('#displayname').val() == null || $('#displayname').val() == '') {
            $('#displayname') = "Anonymous";
        }

但是,这并没有得到工作 done.The 点仍然显示。任何人都可以给我一些关于如何进行此更改以显示 "Anonymous" 的指导吗?谢谢。

我还没有读过你的例子,但是如果 UserName 是通过服务器端方法 name 创建的。那么您需要执行以下操作:

public void Send(string name, string message)
{
     Clients.All.broadcastMessage(name, message);
}

那么当您调用 Send.

时,您应该尝试以下操作
public void Send(string name, string message)
{
     var user = name;
     if(string.IsNullOrEmpty(user))
          user = "Anonymous";

     Clients.All.broadcastMessage(user, message);
}

理论上可以解决您的问题,因为 JavaScript 没有解决您的问题。

但是,我相信客户端的以下内容将是您问题的根源。

chat.client.broadcastMessage = function (name, message) {
        var encodedName = $('<div />').text(name).html();
        var encodedMsg = $('<div />').text(message).html();

        $('#discussion').append('<li><strong>' + encodedName
            + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
    }; 

您可以在其中更正您的无效 username。希望这能解决问题或为您指明正确的方向。如果没有更多与您的电话地点相关的信息,我将帮不上什么忙。