Javascript 单击按钮时如何在另一个页面中弹出引导警报
我正在尝试建立一个管理页面,如果我点击“发送”按钮,消息将被发送,并在员工页面上弹出一个引导警报。 我已经设置了引导警报,第一次显示消息。在我关闭并再次发送消息后,我没有看到任何警报。我想当我点击“发送”按钮时,它需要被触发,但我正在为如何做到这一点而挣扎。希望有人能给我一个简单的方法。 以下是管理员页面要发送的代码:Javascript 单击按钮时如何在另一个页面中弹出引导警报,javascript,html,asp.net,asp.net-core,razor,Javascript,Html,Asp.net,Asp.net Core,Razor,我正在尝试建立一个管理页面,如果我点击“发送”按钮,消息将被发送,并在员工页面上弹出一个引导警报。 我已经设置了引导警报,第一次显示消息。在我关闭并再次发送消息后,我没有看到任何警报。我想当我点击“发送”按钮时,它需要被触发,但我正在为如何做到这一点而挣扎。希望有人能给我一个简单的方法。 以下是管理员页面要发送的代码: <form action="" method="post"> <fieldset> <
<form action="" method="post">
<fieldset>
<tr>
<div class="form-group">
<td>Send message</td>
<input type="text" id="msg" name="Bericht"/>
</div>
<div class="form group">
<button type="submit" id="sendButton" asp-page-handler="Submit" >Send</button>
</div>
</tr>
</fieldset>
</form>
我正在尝试建立一个管理页面,如果我点击“发送”按钮,消息将被发送,并在员工页面上弹出一个引导警报
要实现向所有连接的用户(员工)推送通知,然后使用接收到的数据更新客户端UI的要求,可以参考以下代码段来修改项目
通过将IHubContext
的实例添加到构造函数中,将其注入管理页面模型类
测试结果
注意:有关“从集线器外部发送消息”的更多信息,请查看此文档:如果要跳转到新页面时弹出一些消息?那么,当前页面呈现将终止,然后呈现新页面。创建该页面后,它将向下移动到浏览器端。这意味着您必须设置一些持久值(可能是session()),然后在新页面加载事件中,您要做的最后一件事就是注入JavaScript以运行并显示弹出窗口。由于您将当前页面转到另一个新页面,因此无法使用客户端代码+服务器端代码在当前页面中触发客户端弹出窗口或消息。所以必须触发新页面。
<script src="~/lib/signalr.js"></script>
<script type="text/javascript">
// Start the connection.
var connection = new signalR.HubConnectionBuilder()
.withUrl('/speedalarmhub')
.build();
connection.on('ReceiveMessage', function (message) {
var encodedMsg = message;
// Add the message to the page.
document.getElementById("output").innerHTML = encodedMsg;
});
// Transport fallback functionality is now built into start.
connection.start()
.then(function () {
console.log('connection started');
connection.invoke('SendMessage');
})
.catch(error => {
console.error(error.message);
});
</script>
<div class=container>
<div class="alert alert-warning">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<p id="output"></p>
</div>
</div>
public void OnPostSubmit(NotificationModel notif)
{
DateTime datenow = DateTime.Now;
CreateNotification(datenow, notif.Bericht);
}
public void CreateNotification(DateTime convdayid, string Bericht)
{
var cs = Database.Database.Connector();
using var con = new NpgsqlConnection(cs);
con.Open();
var sql = "INSERT INTO notification(bericht, datumnu) VALUES(@Msg, @Date)";
using var cmd = new NpgsqlCommand(sql, con);
cmd.Parameters.AddWithValue("Msg", Bericht);
cmd.Parameters.AddWithValue("Date", convdayid);
cmd.Prepare();
cmd.ExecuteNonQuery();
con.Close();
}
private readonly IHubContext<ChatHub> _hubContext;
public AdminPanelModel(IHubContext<ChatHub> hubContext)
{
_hubContext = hubContext;
}
public async Task CreateNotification(DateTime convdayid, string Bericht)
{
//...
//your code logic here
//...
await _hubContext.Clients.All.SendAsync("ReceiveMessage", $"{Bericht}");