Asp.net mvc 5 signalr2 asp.net、vc5如何为发送和接收的消息设置不同的css样式?
我使用ASP.NETMVC5和Signalr2。 我在一个视图中有一个聊天页面, 和另一个partialview中的一个聊天页面, 对于发送的消息和接收的消息,我有不同的风格。 如何将此样式设置为发送和接收的邮件 互联网上所有的信件都是在一个视图中聊天,所以没有不同的风格 我使用此链接: 谢谢:)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; //创建一个中心可
@{
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. 动动脑筋,请:-)。您的目标是分离来自当前客户端和其他客户端的消息。因此,您必须根据这个要求修改代码。我改变了答案。