2015-11-07 72 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); 
};