无法从ASP.NET代码隐藏打开Bootstrap 5 Modal

9nvpjoqh  于 2023-06-07  发布在  .NET
关注(0)|答案(2)|浏览(164)

我已经审查了许多以前的问题,但没有发现任何工作。我有一个ASP.NET Web应用程序项目,我想使用Bootstrap 5模式来显示消息,当用户需要在帐户注册过程中更正某些内容时。部分原因是因为创建帐户的一些逻辑必须在服务器端运行,所以通过JavaScript完成所有事情并不是一个真正的选择。
我的模态代码定义如下:

<div class="modal fade" id="ErrModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
   <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="staticBackdropLabel">Please Correct...</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <asp:Label ID="lblMsg" CssClass="h5" runat="server"></asp:Label>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-btn-primary" data-bs-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

我添加了客户端脚本代码如下:

function openModal() {
   $('#ErrModal').modal('show');
}

最后,在我的ASP.NET代码隐藏中,我尝试使用以下代码显示模态:

lblMsg.Text = ex.StatusCode.ToString ( );
ClientScript.RegisterStartupScript ( this.GetType ( ), "Pop", "openModal();", true );

当我故意让显示模式的代码执行时,它不会弹出,并且我在Chrome控制台中得到错误“Uncaught ReferenceError: openModal is not defined”。
我做错了什么?

5tmbdcev

5tmbdcev1#

很可能脚本甚至在页面完全加载之前就运行了。
参考文献

t3psigkw

t3psigkw2#

很抱歉这个答案来得太晚了,但总比没有好。我今天也遇到了同样的问题,并解决了。Bootstrap 5不支持jQuery。您可以删除jquery脚本引用并将客户端脚本更改为:

function openModal() {
         var pageModal = new bootstrap.Modal(document.getElementById("ErrModal"), { keyboard: false });
         pageModal.show();
 }

相关问题