signalRを使用する必要があるasp.net mvc 5アプリケーションを開発しています。ハブを作成し、ハブに接続できました。今、私が直面している主な問題は、サーバー側のメソッドをハブにマップする方法です。私にとって大きな助けとなる何かが私を助けることができるなら、私はsignalRでまったく新しいです。これが私のコードです:
HUB:
[HubName("statusLog")]
public class StatusLogHub : Hub
{
[HubMethodName("sendExportStatus")]
public void SendExportStatus()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<StatusLogHub>();
Clients.All.updateStatus();
}
}
Repository :
public class EmailStatusLogRepository
{
EMailDBContext _ctx = new EMailDBContext();
//I need to show this lstEmailStatus list in real time.
public IEnumerable<EmailStatusLog> GetExportStatus()
{
var lstEmailStatus = _ctx.emailStatusLogs.Where(x => x.IsActive == true && x.Date == DateTime.Now.ToString()).ToList();
return lstEmailStatus;
}
}
Controller :
public ActionResult GetExportStatus()
{
EmailStatusLogRepository objEmailStatusRepository = new EmailStatusLogRepository();
return PartialView("_exportedReportList", objEmailStatusRepository.GetExportStatus());
}
View:
$("#btnExportStatus").click(function () {
$.ajax({
url: '@Url.Action("GetExportStatus")',
contentType: 'application/html ; charset:utf-8',
type: 'GET',
dataType: 'html'
}).success(function () {
var connection = $.hubConnection();
var hub = connection.createHubProxy("statusLog");
hub.on("updateStatus", function (statusUpdated) {
$('#hitCountValue').text(statusUpdated);
});
});
// Declare a proxy to reference the hub.
});
function getExportStatus() {
var tbl = $('#statusTable');
$(function (result) {
tbl.empty().append(result);
}).error(function () {
});
};