C# MVC model层数据有变化,view层实现刷新
2020-12-28 09:29
标签:cli 提示 bio tst otto length success time ini 需要引用: using Microsoft.AspNet.SingleR; using Microsoft.AspNet.SignalR.Hubs; 实现方式: 操作数据库后调用客户端的函数,调用的方式是 通过ASP.NET SignalR实时通讯的功能,客户端的函数触发刷新功能。 ASP.NET SignalR是一个开源的实时通讯(real-time)库,有了ASP.NET SignalR,我们可以在 详细介绍参考:https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr#what-is-signalr 入门demo:源代码地址:https://github.com/mcgrady525/GettingStarted.SignalR 以下是我今天在实现此功能时针对我的项目所写的代码: 首先web端发送控阀指令给电信nbiot平台后,指令的状态变化电信平台会推送到我们的平台。要实现的功能是平台收到后更新指令状态,同时此时需要刷新页面。 1、电信平台推送命令变化指令到接口,接口进行处理(接口是在mvc controller里处理,例如 CallBackController),同时在CallBackController里调用 // 命令状态改变,触发页面,刷新\ 2、实时通信 aspnet.SingleR 代码写在单独一个类里 using Microsoft.AspNet.SignalR; namespace SmartMeterV5.Application.Web [HubMethodName("valvePush")]//客户端调用,首字母要小写 } 3、页面端,调用js。在js里进行处理。我这里直接放到类似母版页掉的js中(lr-admin.js) // 通知栏插件初始化设置 chat = page.startSignalRClient(); chat.client.refrenshloRaWan = function (meteraddr) { startSignalRClient: function (obj) { $(function () { chat.client.refrenshloRaWan = function (meteraddr) { C# MVC model层数据有变化,view层实现刷新 标签:cli 提示 bio tst otto length success time ini 原文地址:https://www.cnblogs.com/zxdz/p/13323931.html
new AlarmPushHub().ValvePush(meterAddr);
using Microsoft.AspNet.SignalR.Hubs;
{
[HubName("alarmHub")]
public class AlarmPushHub : Hub
{
[HubMethodName("alarmPush")]//客户端调用,首字母要小写
public void AlarmPush(string msg)
{
//因为在后台调用,所以要这样写,否则会出错,提示Using a Hub instance not created by the HubPipeline is unsupported
var hubContext = GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.ShowAlarm(msg); //用户调用客户端的函数
}
public void ValvePush(string meterAddr)
{
//因为在后台调用,所以要这样写,否则会出错,提示Using a Hub instance not created by the HubPipeline is unsupported
var hubContext = GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.Refresh(meterAddr); //用户调用客户端的函数
}
[HubMethodName("valvePushLoRaWan")]//客户端调用,首字母要小写
internal void valvePushLoRaWan(string meterAddr)
{
//因为在后台调用,所以要这样写,否则会出错,提示Using a Hub instance not created by the HubPipeline is unsupported
var hubContext = GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.refrenshloRaWan(meterAddr); //用户调用客户端的函数
}
}
var loaddfimg;
var chat;
(function ($, learun) {
"use strict";
var page = {
init: function () {
/*判断当前浏览器是否是IE浏览器*/
if ($(‘body‘).hasClass(‘IE‘) || $(‘body‘).hasClass(‘InternetExplorer‘)) {
$(‘#lr_loadbg‘).append(‘‘);
Pace.stop();
}
else {
Pace.on(‘done‘, function () {
$(‘#lr_loadbg‘).fadeOut();
Pace.options.target = ‘#learunpacenone‘;
});
}
toastr.options = {
"closeButton": true,
"debug": false,
"newestOnTop": true,
"progressBar": false,
"positionClass": "toast-top-center",
"preventDuplicates": false,
"onclick": null,
"showDuration": "300",
"hideDuration": "1000",
"timeOut": "3000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
// 打开首页模板
learun.frameTab.open({ F_ModuleId: ‘0‘, F_Icon: ‘fa fa-desktop‘, F_FullName: ‘首页‘, F_UrlAddress: ‘/Home/AdminDesktopTemp‘ }, true);
learun.clientdata.init(function () {
page.userInit();
// 初始页面特例
bootstrap($, learun);
chat.client.refresh = function (meterAddr) {
//向页面添加消息
console.log(meterAddr);
var src = $("iframe:last")[0].src;
alert("11," + src);
if (src.indexOf("Controlhistory?MeterAddr=" + meterAddr) > 0 &&
window.frames[window.frames.length - 1].acceptClick)
window.frames[window.frames.length - 1].acceptClick();
}
//向页面添加消息
console.log(meteraddr);
var src = $("iframe:last")[0].src;
if (src.indexOf("ControlhistoryLoRaWan?MeterAddr=" + meteraddr) > 0 &&
window.frames[window.frames.length - 1].acceptClick)
window.frames[window.frames.length - 1].acceptClick();
}
},
var chat = $.connection.alarmHub;
$.connection.hub.start().done(function () {
console.log("connection success!");
});
return chat;
},
page.init();
});
})(window.jQuery, top.learun);
var src = $("iframe:last")[0].src;
alert("11," + src);
if (src.indexOf("Controlhistory?MeterAddr=" + meterAddr) > 0 &&
window.frames[window.frames.length - 1].acceptClick)
window.frames[window.frames.length - 1].acceptClick();
}
//向页面添加消息
console.log(meteraddr);
var src = $("iframe:last")[0].src;
if (src.indexOf("ControlhistoryLoRaWan?MeterAddr=" + meteraddr) > 0 &&
window.frames[window.frames.length - 1].acceptClick)
window.frames[window.frames.length - 1].acceptClick();
}
上一篇:5 搭建apiserver
文章标题:C# MVC model层数据有变化,view层实现刷新
文章链接:http://soscw.com/index.php/essay/38795.html