You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SignalR服务器响应与状态验证逻辑关联并触发false状态?

实现SignalR响应与状态验证视图的动态关联

完全可以实现SignalR服务器响应与状态验证逻辑的关联,具体步骤如下:

1. 调整HTML结构,添加可识别容器

给原状态视图外层添加带ID的容器,保留服务器端渲染的初始状态,方便JavaScript定位修改:

<div id="statusContainer">
    Status: @if (Model.Connected == false)
    {
        <img src="/icons/wifi_off.svg" height="45" width="45" /><span>Offline, brak połączenia z portem COM</span>
    }
    else
    {
        <img src="/icons/wifi_on.svg" height="45" width="45" /><span>Online, połączono z portem COM</span>
    }
</div>

2. 修改SignalR前端响应逻辑

不再直接赋值简单文本,而是根据服务器返回的状态值,生成与原逻辑一致的HTML内容并替换容器:

场景一:服务器返回布尔值(true=在线,false=离线)

switch(informations[0]){
case "Status":
    const statusContainer = document.getElementById('statusContainer');
    const isConnected = informations[1];
    if (!isConnected) {
        statusContainer.innerHTML = 'Status: <img src="/icons/wifi_off.svg" height="45" width="45" /><span>Offline, brak połączenia z portem COM</span>';
    } else {
        statusContainer.innerHTML = 'Status: <img src="/icons/wifi_on.svg" height="45" width="45" /><span>Online, połączono z portem COM</span>';
    }
    break;
}

场景二:服务器返回状态字符串(如"Offline"/"Online")

switch(informations[0]){
case "Status":
    const statusContainer = document.getElementById('statusContainer');
    const status = informations[1];
    if (status === "Offline") {
        statusContainer.innerHTML = 'Status: <img src="/icons/wifi_off.svg" height="45" width="45" /><span>Offline, brak połączenia z portem COM</span>';
    } else {
        statusContainer.innerHTML = 'Status: <img src="/icons/wifi_on.svg" height="45" width="45" /><span>Online, połączono z portem COM</span>';
    }
    break;
}

说明

初始状态由服务器端的Model.Connected渲染,后续SignalR推送状态变更时,前端会实时替换状态容器的内容,完全匹配你原有的状态验证逻辑显示效果。

内容的提问来源于stack exchange,提问作者Software Architect

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:50:20