我正在使用SignalR 1.1.3
在我的asp.net mvc 4
项目中发布实时通知。我能够在消息框中添加新消息,但我无法更新新消息计数器。以下是我更新新邮件计数器的代码,
jQuery脚本
$(function () {
var chat = $.connection.chatHub;
var notifyVal = $('.notification-red').val();
var newVal = notifyVal + 1;
chat.client.addNewMessageToPage = function () {
$('#newItem').append(
'<span class="notification-red">' + newVal + '</span>');
};
$.connection.hub.start().done(function () {
$('#btnSend').click(function () {
chat.server.send();
});
});
});
HTML
<ul id="newItem" class="nav navbar-top-links navbar-right">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-envelope fa-fw"></i><i class="fa fa-caret-down"></i>
@{
int count = 0;
}
@foreach (var item in MsgList)
{
if (Html.DisplayFor(modelItem => item.status).ToString() == "Unread")
{
count++;
}
<span class="notification-red">@count</span>
}
</a>
</li>
</ul>
这里发生的是每当我从另一方发送消息而不是更新计数器号时,新计数器会附加。如何仅更新SignalR的每次点击次数?非常需要这个帮助。感谢。
答案 0 :(得分:0)
变化:
$('#newItem').append('<span class="notification-red">' + newVal + '</span>');
类似于:
$('.notification-red').html(newVal);
答案 1 :(得分:0)
假设您使用此标记来反驳计数器:
<span id="notificationCounter"></span>
现在数据准备好后,您可以递增计数器:
chat.client.addNewMessageToPage = function () {
$('#notificationCounter').html(parseInt($('#notificationCounter').html(), 10) + 1);
};