在MVC应用程序中,如何像通知一样一一显示消息?

时间:2018-10-17 07:22:01

标签: c# .net asp.net-mvc model-view-controller

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

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

控制器方法中的代码-

@implementation NSImage (CustomDynamic)

+ (NSImage *)imageWithLight:(NSImage *)light dark:(NSImage *)dark
{
    if (@available(macOS 10.14, *)) {
        return [NSImage
            imageWithSize:light.size
            flipped:NO
            drawingHandler:^(NSRect dstRect) {
                if ([NSImage appearanceIsDarkMode:NSAppearance.currentAppearance]) {
                    [dark drawInRect:dstRect];
                } else {
                    [light drawInRect:dstRect];
                }
                return YES;
            }
        ];
    } else {
        return light;
    }
}

+ (BOOL)appearanceIsDarkMode:(NSAppearance *)appearance
{
    if (@available(macOS 10.14, *)) {
        NSAppearanceName basicAppearance = [appearance bestMatchFromAppearancesWithNames:@[
            NSAppearanceNameAqua,
            NSAppearanceNameDarkAqua
        ]];
        return [basicAppearance isEqualToString:NSAppearanceNameDarkAqua];

    } else {
        return NO;
    }
}

@end

如何在视图或局部视图上一一显示 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")

如果发生错误,将显示错误消息。 如果成功,则必须像通知一样一个接一个地显示成功消息。

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

ViewBag.Message

device register successfully device1等...

我知道ViewBag不会有用,任何人都可以通过正确的方向或任何链接或代码段帮助我吗?

1 个答案:

答案 0 :(得分:1)

我认为您需要针对此行为采取其他方法。

研究使用signalR,以便在进行服务器端操作时可以与客户端视图进行通信。

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