首页 > 解决方案 > 在 mvc 应用程序中,如何像通知一样一一显示消息?

问题描述

我有一个 MVC 应用程序,我正在使用 foreach 循环将设备注册到 IOT。

当一台设备完成注册时,我想一一显示消息。如何在视图上显示消息?

控制器方法中的代码 -

    foreach (var deviceId in collection)
    {
        try
        {
            // save device information into database
            Models.Device newDevice = new Models.Device()
            {
                Id = Guid.NewGuid(),
                Device = deviceId
            };

            _deviceRepository.InsertDevice(newDevice);
            _deviceRepository.Save();

        }
        catch (DeviceAlreadyExistsException)
        {
            device = await registryManager.GetDeviceAsync(deviceId);
            ViewBag.Message = "device already present";
        }
    }

}
catch (Exception ex)
{
    ViewBag.Message = "Error";
    throw ex;
}
ViewBag.Message = "device register successfully - " + deviceId;
return View("Index")

如何ViewBag.Message在视图或部分视图中一一显示?

如果发生错误,它将显示错误消息。如果成功则一一通知我们必须显示消息成功消息。

例如我有 10 个项目,那么 foreach 将运行 10 次,每次设备成功后,我们需要在 UI 上显示一条消息:

device register successfully device1

device register successfully device2等等 ...

我知道 ViewBag 没有用,我可以采取什么方法?

标签: c#.netasp.net-mvcmodel-view-controller

解决方案


我认为您需要对这种行为采取不同的方法。

考虑使用 signalR,以便您可以在服务器端操作发生时与客户端视图进行通信。

您可以使用它来显示进度加载栏,或在设备注册时提供反馈。


推荐阅读