推送通知无法在mvc中显示

时间:2018-03-20 09:23:33

标签: javascript model-view-controller signalr signalr-hub

我在mvc中使用“signalR”进行代码推送通知,其中只有一个问题是它无法显示通知。

我已经在控制台中检查过它说“Hub已启动。”。

我认为问题出现在脚本或HTML中,因为在服务器端,每件事情都是正确的并且正常工作

这是我的剧本

<script type="text/javascript">
    $(function () {
        // Click on notification icon for show notification
        $('span.noti').click(function (e) {
            e.stopPropagation();
            $('.noti-content').show();
            var count = 0;
            count = parseInt($('span.count').html()) || 0;
            //only load notification if not already loaded
            if (count > 0) {
                updateNotification();
            }
            $('span.count', this).html('&nbsp;');
        })
        // hide notifications
        $('html').click(function () {
            $('.noti-content').hide();
        })
        // update notification 
        function updateNotification() {
            $('#notiContent').empty();
            $('#notiContent').append($('<li>Loading...</li>'));

            $.ajax({
                type: 'GET',
                url: '/Home/GetNotification',
                success: function (response) {
                    alert(response);
                    $('#notiContent').empty();
                    if (response.length == 0) {
                        $('#notiContent').append($('<li>No data available</li>'));
                    }
                    $.each(response, function (index, value) {
                        $('#notiContent').append($('<li>New Booking : ' + value.ContactNo + ' (' + value.UserStartLocation + ') added</li>'));
                    });
                },
                error: function (error) {
                    console.log(error);
                }
            })
        }
        // update notification count
        function updateNotificationCount() {
            var count = 0;
            count = parseInt($('span.count').html()) || 0;
            count++;
            $('span.count').html(count);
        }
        // signalr js code for start hub and send receive notification
        var notificationHub = $.connection.notificationHub;
        $.connection.hub.start().done(function () {
            console.log('Notification hub started');
        });

        //signalr method for push server message to client
        notificationHub.client.notify = function (message) {
            if (message && message.toLowerCase() == "added") {
                updateNotificationCount();
            }
        }

    });
</script>

这是我的HTML代码

<ul class="nav navbar-top-links navbar-right">
            <li>
                <span class="noti glyphicon glyphicon-bell"><span 
                 class="count">&nbsp;</span></span>
                <div class="noti-content">
                    <div class="noti-top-arrow"></div>
                    <ul id="notiContent"></ul>
                </div>
            </li>
    </ul>

0 个答案:

没有答案