c# - 跨网络更新面板失败

标签 c# asp.net ajax iis-8

发生的事情是在回发时 IE 遇到错误

Unable to get property 'PRM_ServerError' of undefined or null reference

此错误仅在项目部署到远程机器上且仅在 IE 中出现。我不确定为什么会这样,因为当项目在本地部署时它在 IE 中正确执行。此外,当我从远程服务器本地访问该网站时,它不会遇到此问题。起初我认为这是一个安全问题,但该网站无论部署在何处都在同一安全区域中执行。有任何想法吗?谢谢。

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeBehind="test.aspx.cs" Inherits="UnitConverterWrapperDemo.Controllers.KcclWrapper" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <h1>Wrapper Test</h1>
    <br />
    <h3>Calculation</h3>
    <asp:UpdatePanel runat="server">
        <ContentTemplate>
            <asp:DropDownList ID="Calculation" runat="server" CssClass="form-control" AutoPostBack="true" OnSelectedIndexChanged="Calculation_SelectedIndexChanged"></asp:DropDownList>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Panel runat="server">
        <script type="text/javascript">
            $('#tab a:first').tab('show');

            $('#calcOptions').click(function (e) {
                e.preventDefault()
                $(this).tab('show')
            })
            $('#Inputs').click(function (e) {
                e.preventDefault()
                $(this).tab('show')
            })
        </script>
        <br />

        <ul class="nav nav-tabs" id="tab">
            <li class="active"><a href="#calcOptions" data-toggle="tab" class="active">Options</a></li>
            <li><a href="#Inputs" data-toggle="tab">Inputs</a></li>
            <li><a href="#Constants" data-toggle="tab">Constants</a></li>
            <li><a href="#Intermediate" data-toggle="tab">Intermediate</a></li>
            <li><a href="#Output" data-toggle="tab">Outputs</a></li>
        </ul>

        <br />

        <div class="tab-content">
            <div class="tab-pane active" id="calcOptions">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Label Text="text" runat="server" ID="OptionsHeader" />
                        <fieldset>
                            <asp:Panel runat="server" ID="Options"></asp:Panel>
                        </fieldset>
                        <hr />
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
            <div class="tab-pane" id="Inputs">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="inputs">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Constants">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="constrants">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Intermediate">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="intermediate">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Output">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="output">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>

                <button type="button" class="btn btn-primary btn-lg">Recalculate</button>
            </div>
        </div>
    </asp:Panel>
</asp:Content>

最佳答案

对于那些感兴趣的人,我在部署到我们的生产 Web 服务器后立即在我的页面上遇到了同样的错误。

调用某些服务器端代码时,更新面板内的 ajax 调用期间会发生错误,但 iis 应用程序池已被回收(在部署后发生)。

可以通过将 AsyncPostBackError 事件处理程序添加到 ScriptManager 来在代码中处理错误。

然后,您可以在发生此错误时将用户重定向到某个地方,或者显示一条弹出消息,说明他们的 session 已过期并且现在正在刷新,或者任何适合您的应用程序的信息。

更多信息在这里:https://msdn.microsoft.com/en-us/library/bb398934.aspx

希望这对某人有帮助:)

关于c# - 跨网络更新面板失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329284/

相关文章:

c# - 为什么我的 CollectionView 向下或向上滚动时速度很慢?如何解决性能问题?我已经清理了我的 UI 代码

c# - 这些对象的实例化方式有何不同?

c# - MVC 路由问题如何设置所有 Controller 的默认操作?

javascript - 将多层 PHP 数组转换为 Javascript 对象表示法

c# - 如何从类型变量中获取枚举的默认值

c# - 构建服务器上的 mstest.exe 错误

c# - 未应用 CSS 样式

asp.net - 在禁用 ViewState 的情况下为 ASP.NET DropDownList 控件模拟 'SelectedIndexChanged' 的最佳方法

javascript - 如何使用AJAX获取oAuth参数?

javascript - 无法将变量传递给ajax url