Asp.net mvc 5 signalr2 asp.net、vc5如何为发送和接收的消息设置不同的css样式?

Asp.net mvc 5 signalr2 asp.net、vc5如何为发送和接收的消息设置不同的css样式?,asp.net-mvc-5,chat,signalr-2,Asp.net Mvc 5,Chat,Signalr 2,我使用ASP.NETMVC5和Signalr2。 我在一个视图中有一个聊天页面, 和另一个partialview中的一个聊天页面, 对于发送的消息和接收的消息,我有不同的风格。 如何将此样式设置为发送和接收的邮件 互联网上所有的信件都是在一个视图中聊天,所以没有不同的风格 我使用此链接: 谢谢:) @{ ViewBag.Title=“聊天”; } 聊天 @节脚本{ $(函数(){ //为中心引用自动生成的代理。 var chat=$.connection.chatHub; //创建一个中心可

我使用ASP.NETMVC5和Signalr2。 我在一个视图中有一个聊天页面, 和另一个partialview中的一个聊天页面, 对于发送的消息和接收的消息,我有不同的风格。 如何将此样式设置为发送和接收的邮件

互联网上所有的信件都是在一个视图中聊天,所以没有不同的风格

我使用此链接:

谢谢:)

@{
ViewBag.Title=“聊天”;
}
聊天
@节脚本{ $(函数(){ //为中心引用自动生成的代理。 var chat=$.connection.chatHub; //创建一个中心可以回调以显示消息的函数。 chat.client.addNewMessageToPage=函数(名称、消息){ //将消息添加到页面。 $(“#讨论”)。追加(“
  • ”+htmlEncode(名称) +“:”+htmlEncode(消息)+“
  • ”); }; //获取用户名并将其存储到消息前。 $('#displayname').val(提示('输入您的姓名:',''); //将初始焦点设置为消息输入框。 $(“#消息”).focus(); //启动连接。 $.connection.hub.start().done(函数(){ $('#sendmessage')。单击(函数(){ //在集线器上调用Send方法。 chat.server.send($('#displayname').val(),$('#message').val()); //清除文本框并重置下一条注释的焦点。 $('#message').val('.focus(); }); }); }); //此可选函数用于对页面中显示的消息进行html编码。 函数htmlEncode(值){ var encodedValue=$('').text(value.html(); 返回编码值; } }
    您需要一个标志,根据该标志,您可以在来自和发送到服务器的消息之间进行区分。您还需要一些css来标记不同的消息

    示例:

    chat.client.addNewMessageToPage = function (name, message, fromServer) {
                    // Add the message to the page. 
                   if(fromServer){
                      $('#discussion').append('<li class="messageFromServer">strong>'+htmlEncode(name)+'</strong>: '+htmlEncode(message) + '</li>');
                    }
                   else{
                      $('#discussion').append('<li class="messageToServer"><strong>'+htmlEncode(name)+'</strong>: '+htmlEncode(message)+'</li>');                      
                    }
                };
    
    .messageFromServer{
       color:purple
    }
    .messageToServer{
      color:red
    
    public class ChatHub : Hub
    {
        public void Send(string name, string message)
        {
            // Mark the message, that this is from other client. Only call methode "addNewMessageToPage" with this params on other clients(not on caller)
            Clients.Others.addNewMessageToPage(name, message, false); 
    
            // Mark message that this is from current client. Only call method addNewMessageToPage"  on caller cliebt
            Clients.Caller.addNewMessageToPage(name, message, false);
        }
    }
    
    (您可以在fiddler上测试css内容: )

    您的中心:

    chat.client.addNewMessageToPage = function (name, message, fromServer) {
                    // Add the message to the page. 
                   if(fromServer){
                      $('#discussion').append('<li class="messageFromServer">strong>'+htmlEncode(name)+'</strong>: '+htmlEncode(message) + '</li>');
                    }
                   else{
                      $('#discussion').append('<li class="messageToServer"><strong>'+htmlEncode(name)+'</strong>: '+htmlEncode(message)+'</li>');                      
                    }
                };
    
    .messageFromServer{
       color:purple
    }
    .messageToServer{
      color:red
    
    public class ChatHub : Hub
    {
        public void Send(string name, string message)
        {
            // Mark the message, that this is from other client. Only call methode "addNewMessageToPage" with this params on other clients(not on caller)
            Clients.Others.addNewMessageToPage(name, message, false); 
    
            // Mark message that this is from current client. Only call method addNewMessageToPage"  on caller cliebt
            Clients.Caller.addNewMessageToPage(name, message, false);
        }
    }
    

    你能告诉我们你的密码吗?对不起。。。我的问题还没有解决…对于设置和接收的消息,我有不同的css样式。但我不能为服务器和服务器之间的消息设置不同的css样式。我所有的信息都有相同的风格。请帮我拿样品。。。谢谢你的代码。你设置了de标志吗“服务器端的fromServer是否正确?我不确定插入标志是否正确!!!我不知道这个。。。请给我举个例子。thanks@s8990. 动动脑筋,请:-)。您的目标是分离来自当前客户端和其他客户端的消息。因此,您必须根据这个要求修改代码。我改变了答案。