微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从控制器的动作中调用集线器方法

如何解决从控制器的动作中调用集线器方法

我尝试像 here 一样调用方法

但由于某种原因它不起作用。当我从视图中调用时它工作正常。

我的目的是做一个数据库获取大量数据并使用它执行函数函数,并将进度更新为同一视图上进度条上的百分比。我已经实现了其他所有功能,但找不到更快的方法来从控制器获取数据以查看功能的每次成功完成。如果有人可以帮助我纠正此方法或建议更适合我的目的的方法,我将不胜感激。

如果您需要更多详细信息,请询问。

控制器:

    [HttpPost]
    public ActionResult SendMessge()
    {
        var hubContext = GlobalHost.ConnectionManager.GetHubContext<SearchHub>();
        hubContext.Clients.All.addNewMessagetoPage("New Message");
        return Json("Success"); ;
    }

SearchHub.cs:

namespace SearchHuB
{
    public class SearchHub : Hub
    {
        public void Send(string msg)
        {
            Clients.All.addNewMessagetoPage(msg);
        }
    }
}

脚本:

<script>
 $(document).ready(function () {
                sendmessage();
                
            });
 function sendmessage() {
                 
                $.ajax({
                    url: '@Url.Action("SendMessge","Search",new { })',type: 'POST',success: function (result) {

                    },error: function (jqXHR,exception) {

                    }
                });
            }
var chat = $.connection.searchHub;
        chat.client.addNewMessagetoPage = function (m) {
            console.log(m)
        }
         
        var notificationHub = $.connection.searchHub;
        $.connection.hub.start().done(function () {
            console.log('Notification hub started');
        });
<script>
       

当我像这样从同一个视图调用时它确实有效:

        var chat = $.connection.searchHub;
        chat.server.send("new message")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。