1.asp.net core mvc中,在后台触发报警时,在网页中弹出提示框
2.弹出消息不要用return的方式,因为触发报警的方法不是Action,且后面还有代码要执行
<div id="myAlert" class="alert alert-success">
<a href="#" class="close" data-dismiss="alert">×</a>
<strong>成功!</strong>结果是成功的。
</div>
额,没办法回答。因为后台触发报警,并不是用户访问。所以他没有办法发起所谓的“Action”
你需要的其实是ws,mqtt,singlR,bat的消息推送服务,这类消息推送机制(甚至你都可以是kafaka,rabitmq,webRtc,唯独不能谈mvc和Aciton)
如果你使用上面任意一种方式进行消息推送,其实也基本没啥需要实现的了。那只是纯粹的js,去show这个div
貌似你越跑越偏啊,非跟着园子学啥“非net不用么”,比如你前面的mqtt,非mqttnet不用么?这个么有钱付费直接用bat的iot组件,消息推送服务
没钱直接docker装个 emqx,rabitmq都行,还非的用net玩?你把emqx看成中间件,看成数据库就成
所以数据库一定是C#么,貌似你们用的就没有一个数据库是C#写的,你们还不是用了。项目只要能完成,kafaka,nginx,emqx,redis这些非net的一样可以用的
【以下回答由 GPT 生成】
在ASP.NET Core MVC中,后台无法直接操作前端页面的元素,因为后台代码在服务器上执行,而前端页面是在浏览器上展示的。解决这个问题的一种常见方法是使用Ajax。
步骤如下:
<div id="alertContainer"></div>
function triggerAlert() {
$.ajax({
url: "/yourController/yourAction", // 替换为后台方法的URL
type: "POST", // 根据需要使用 GET 或 POST
success: function (response) {
$("#alertContainer").html(response); // 将报警信息插入到页面中的 alertContainer 元素中
}
});
}
[HttpPost]
public IActionResult YourAction()
{
// 触发报警的代码
// ...
string alertMessage = "<div class=\"alert alert-success\"><a href=\"#\" class=\"close\" data-dismiss=\"alert\">×</a><strong>成功!</strong> 结果是成功的。</div>";
return Content(alertMessage); // 返回报警信息的字符串
}
在上述代码中,首先使用$.ajax
函数发送一个POST请求到后台的YourAction
方法。当接收到后台的响应时,使用$("#alertContainer").html(response)
将报警信息插入到页面中的alertContainer
元素中。
请注意替换代码中的yourController
和yourAction
为实际的Controller和Action的名称。
这是一种基本的解决方案,但是请注意使用Ajax请求时要遵循相关的安全性和最佳实践。此外,根据具体需求,可能需要在报警触发后执行其他代码,你可以在success
回调函数中添加额外的逻辑。如果你有其他需求或疑问,请提供更多的细节。