【问题标题】:Update Notification counter using SignalR使用 SignalR 更新通知计数器
【发布时间】:2015-11-07 06:42:42
【问题描述】:

我正在使用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 每次点击的数字?非常需要这个帮助。谢谢。

【问题讨论】:

    标签: jquery asp.net-mvc signalr


    【解决方案1】:

    假设您有这个用于显示计数器的标记:

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

    现在,一旦数据准备好,您就可以增加计数器:

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

    【讨论】:

      【解决方案2】:

      变化:

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

      类似于:

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

      【讨论】:

      • 谢谢,但没用。什么都没有更新!我以前确实试过这种方式!
      • 那么还有更多的故事,没有与 SingalR 合作过,但我知道它是什么,你确定,你的 singalR 东西是对的吗?因为它似乎没有被调用......你也不能升级到最新的singalR吗?
      • 我正在使用 VS2012 来设置 SignalR 2,我不得不为此付出更多的麻烦,而我没有时间。此外,我只是用它来为一页制作实时更新通知,所以版本不应该是问题。请再仔细阅读我的帖子,我已经提到新消息正在成功更新,所以很明显我的 SignalR 设置没问题。
      • 是但如果 $('.notification-red').html("new value");不起作用...那么显然它不起作用?
      猜你喜欢
      • 2016-07-06
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多