У меня есть страница asp.net, которая использует SQLDependency Asp.Net SignalR 2 для автоматического отображения изменений из моей базы данных. Моя проблема в том, что я не вижу изменений на моей странице, даже если они верны, когда я отлаживаю. Если я обновляю базу данных, страница покажет старые данные, но мой концентратор получит новые данные. Но это не отображается. Единственное, что я начала работать, чтобы перезагрузить страницу через таймер, как это ..SignalR 2 не обновляет
<script>
function cache_clear() {
window.location.reload(true);
}
$(document).ready(function() {
var count = 60;
setInterval(function() {
$("b[id=show-time]").html(count--);
if (count == 0) cache_clear();
}, 1000)});
</script>
Но это также сделать всю идею SqlDependency избыточна. Может ли кто-нибудь дать мне подсказку, что мне нужно сделать, чтобы обновленные данные отображались на странице?
<script>
$(function() {
var notify = $.connection.notificationsHub;
notify.client.displayNotification = function (msg) {
$("#newData").html(msg);
$("#LitDiv").hide();
};
$.connection.hub.start();
});
</script>
private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
if (e.Info == SqlNotificationInfo.Insert || e.Info == SqlNotificationInfo.Delete || e.Info == SqlNotificationInfo.Update)
{ SendNotifications(); }
}
public void NotfiyAllClients(string msg)
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationsHub>();
// I can see that my database changes are made here, but it does not display that on the page unless I reload the page
context.Clients.All.displayNotification(msg);
}
А использование метода SendNotification это ...
var nHub = new NotificationsHub();
nHub.NotfiyAllClients(message);
EDIT: Если я воспитываю консоль я получаю эту ошибку ..
JavaScript runtime error: Unable to get property 'notificationsHub' of undefined or null reference
Вы ссылались на 'signalr/hubs' в своем проекте? –