У меня есть приложение Angular, основанное на приложении ASP.NET MVC, и есть панель инструментов, где я отображаю некоторые из средних и общих чисел, которые изменяются в событиях Create / Update / Delete.Обычно эти события реализуются в контроллере, как показано ниже:
Controller.cs:
[HttpPost]
public JsonResult Create(Record record)
{
// code omitted for brevity
return Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet);
}
[HttpPost]
public JsonResult Update(Record record)
{
// code omitted for brevity
return Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet);
}
[HttpPost]
public JsonResult Delete(int id)
{
// code omitted for brevity
return Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet);
}
Однако после каждого выполненияэти методы, мне нужно вызвать соответствующие методы Hub для обновления номеров на странице Dashboard.
Hub.cs:
public class NotificationHub : Hub
{
public void Update(Record record)
{
Clients.All.updateStatisticsToPage(record);
}
}
Итак, мои вопросы:
1) Как я могу объединить эти методы для обновления номеров на странице панели инструментов?Должен ли я переместить методы CRUD в Hub и использовать только эти методы?Я добавил последнюю строку, чтобы уведомить клиентов о текущих статистических данных.
[HttpPost]
public JsonResult Create(Record record)
{
// code omitted for brevity
return Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet);
// send update to all clients
Clients.All.updateStatisticsToPage(record);
}
Или я должен сохранить метод в методе Controller и вызвать метод-концентратор после выполнения операции crud?
2) Когда я обновляю статистику на странице Dashboard после события crud, я думаю, что создаю структуру, отличную от приложения чата.Потому что я отправляю уведомление компоненту Dashboard только после события crud.Это правда?