поэтому у меня есть следующий код на моей странице макета:соединение Signalr на макете и вид
$(document).ready(function() {
var connection = $.connection.notificationHub;
connection.client.onTicketUpdated = function (model, user, notificationId) {
....
}
$.connection.hub.start().done(function() {
console.log("Successfully connected to CoreHub.");
});
которых действие должно произойти на любой странице. Таким образом, уведомление может отображаться в главном баре. Однако у меня есть другая страница, которая позволяет сканировать Index.cshtml, загружаемый через основной макет.
$(document).ready(function() {
var connection = $.connection.notificationHub;
connection.client.onNewTicket = function (model, user, notificationId){
....
};
});
Есть ли способ не называть начало снова? Разве это не создало бы 1 соединение для onTicketUpdated и еще одного целого для onNewTicket? Могу ли я использовать hub.start() из layout.cshtml внутри index.cshtml?
Это прослушивало меня какое-то время, и все мои исследования я не нашел ничего, что зафиксировало бы это. Должен быть какой-то способ сделать это, потому что создание двух разных соединений для 2 простых функций кажется большим, чем убийство.
Спасибо, это помогло, и, похоже, работать. Вы знаете, есть ли проблема с вызовом onTicketUpdated как по макету, так и по индексу? заменит ли он один из макета или объединит их и будет работать правильно? – Insight
Конечно, они будут сливаться вместе, потому что 'Index.cshtml' является частью' Layout.cshtml' через 'RenderBody()' и 'connection' переменная одинакова для обеих страниц. –
Я говорил о функциях jquery, а не о cshtml-страницах. Извините, если я объясню это странно. Поэтому я мог бы вызвать onTicketUpdated в макете и index.cshtml. – Insight