Невозможно вызвать метод на стороне клиента с сигналом R в приложении ASP.NET MVC - PullRequest
0 голосов
/ 09 июня 2018

По какой-то причине у меня возникают проблемы с простым вызовом метода на стороне клиента с помощью Signal-R из моего приложения ASP.NET MVC, и мне было интересно, может ли кто-нибудь помочь.

Вот что у меня есть.У меня есть концентратор под названием «NotifyUser» со следующим:

public class NotifyUser : Hub
{
    public void Send(string name, string message)
    {
        Clients.All.addNewMessageToPage(name, message);
    }
}

На клиенте в файле JavaScript в Document.Ready () у меня есть:

$(function () 
{
   var notifyUser = $.connection.notifyUser;

   notifyUser.client.addNewMessageToPage= function (name, message) 
   {
        var x = 5;
   };

   $.connection.hub.start();
})

, и яПопытка вызвать клиентский метод из контроллера на сервере, например:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<NotifyUser>();
hubContext.Clients.All.Send("George", "Hi");    

Когда я устанавливаю точку останова в функции addNewMessageToPage на клиенте, она никогда не срабатывает.Может ли кто-нибудь помочь?Спасибо.

Пит

1 Ответ

0 голосов
/ 09 июня 2018

Когда вы хотите вызвать метод-концентратор из контроллера, он должен быть объявлен как static метод, как показано ниже:

public class NotifyUser : Hub
{
    public static void Send(string name, string message)
    {
        Clients.All.addNewMessageToPage(name, message);
    }
}

это изменение решит вашу проблему, но учтите, что если вы хотите вызватьМетод хаба из клиентского java-скрипта должен быть нестатичным , поэтому вы должны объявить два метода: один статический для вызова контроллера и другой нестатический для вызова java-скрипта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...