2015-11-07 74 views
0

我使用SignalR 1.1.3在我的asp.net mvc 4项目中进行实时通知。我可以在消息框中添加新消息,但我无法更新新的消息计数器。这里是我的代码更新新的消息计数器,使用SignalR更新通知计数器

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每次点击的号码?糟糕的需要这个帮助。谢谢。

回答

-1

变化:

$('#newItem').append('<span class="notification-red">' + newVal + '</span>'); 

喜欢的东西:

$('.notification-red').html(newVal); 
+0

谢谢,但它没有奏效。没有更新!我其实之前尝试过这种方式! –

+0

那么现在有更多的故事,没有与SingalR合作,但我知道它是什么,你确定,你的信息是正确的?因为它看起来像没有被称为那么...你也不能升级到最新信号? – Seabizkit

+0

我正在使用VS2012&设置SignalR 2,我不得不为它花费更多的麻烦,因为我没有时间。此外,我只用它来做一个实时更新通知只有1页,所以版本不应该是一个问题。请仔细阅读我的文章,我已经提到新消息正在更新成功,所以很显然,我的SignalR设置没问题。 –

0

假设你有这个标记为dispalying计数器:

<span id="notificationCounter"></span> 

现在只要数据准备好你可以递增计数器:

chat.client.addNewMessageToPage = function() { 
    $('#notificationCounter').html(parseInt($('#notificationCounter').html(), 10) + 1); 
};