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

问题描述

我尝试像 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 (将#修改为@)