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}");