Modal在我的Web服务器中不起作用,但在localhost中起作用。这是为什么?

时间:2019-01-22 08:24:22

标签: jquery asp.net ajax twitter-bootstrap bootstrap-modal

我正在使用asp.net网络表单。我在页面顶部有一个按钮,当用户单击该按钮时,我要弹出一个模式窗口。 这是我用来实现它的代码。该代码在我的本地主机上运行良好。但是在生产服务器上什么也没发生。

 <asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="uppnlModalDistrict">
                            <ContentTemplate>
                                <asp:Button runat="server" ID="btnModalOpen" Width="100%" CssClass="btn btn-primary" Text="Select Location" OnClick="btnModalOpen_Click" />

                                <!-- Modal -->
                                <section>
                                    <div id="myModal" class="modal fade" role="dialog">
                                        <div class="modal-dialog">

    <div class="modal-content">

     </div>
               </div>
                                    </div>

                                </section>
                            </ContentTemplate>
                        </asp:UpdatePanel>

以上参考文献位于母版页上。

下面的代码放在aspx页面

    protected void btnModalOpen_Click(object sender, EventArgs e)
    {
        GetModalDistricts(); //Function that populate data in Modal
        uppnlModalDistrict.Update();
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "openModal()", false);
    }

在我单击btnModalOpen按钮后的代码中。

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

在aspx中

Error: Sys.WebForms.PageRequestManagerParserErrorException: The
message received from the server could not be parsed. Common causes
for this error are when the response is modified by calls to
Response.Write(), response filters, HttpModules, or server trace is
enabled.

Details: Error parsing near

那么这段代码怎么了?

这是控制台错误

0 A B
1 a good
2 b bad
3 c fair

1 个答案:

答案 0 :(得分:0)

此错误的原因是,由于在按钮单击事件处理程序中方法ScriptManager.RegisterStartupScript的最后一个参数为false,因此您没有在启动时发出针对您注册的JavaScript的打开和关闭脚本标签,实际上应该是真的。

因此,只需使用下面的行替换您的原始行即可解决问题。

ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "openModal()", true);

仅当您正在注册的脚本已经包含打开和关闭脚本标签时,才应将false作为最后一个参数传递给ScriptManager.RegisterStartupScript,如下所示。

ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop",
                         "<script type='text/javascript'>openModal()</script>", false);