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

时间:2015-04-13 23:34:11

标签: c# asp.net signalr

在站点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";
        }

然而,这并没有完成工作。点仍然显示。任何人都可以请给我一些指示如何进行此更改以显示" Anonymous"?谢谢。

1 个答案:

答案 0 :(得分:0)

我没有阅读您的示例,但是如果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。希望能够解决或指向正确的方向。如果没有与您的召唤相关的更多信息,我将不会提供太多帮助。