发生的事情是在回发时 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/