Вы можете сделать это с помощью SignalR, используя Hub
. Fist, установите SignalR из диспетчера пакетов NuGet.
В файле Startup.cs добавьте
app.MapSignalR();
Создать свой класс Hub:
public class MyHub : Hub
{
public string msg = "Initializing hub...";
public void CallLongOperation(int progressStatus)
{
Newtonsoft.Json.Linq.JObject jsonMessage = Newtonsoft.Json.Linq.JObject.Parse(@"{
'msg': 'message',
'value': "someValue"}");
Clients.Caller.sendMessage(jsonMessage.ToString());
}
}
Далее в контроллере, получить MyHub
экземпляр и вы можете уведомить клиентов:
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ProgressHub>();
hubContext.Clients.All.sendMessage(jsonMessage.ToString());
Обратите внимание, что вам нужно создать объект Json (вы можете сделать это как в MyHub
класс)
Наконец, примите сообщение файла JavaScript:
var progressNotifier = $.connection.progressHub;
progressNotifier.client.sendMessage = function (message) {
// Do whatever you want with message you sent from server
}
};
Вы должны добавить скрипт в html
странице. (Вы получили этот сценарий из SignalR)
<script src="~/Scripts/jquery.signalR-2.0.3.min.js"></script>
Надежда это поможет ...