UpdatePanel在生产服务器上完全回发,但在本地服务器上是异步

时间:2014-10-13 00:05:25

标签: asp.net webforms updatepanel

我有一个简单的ASP.NET 4.0 Web表单,它有一个UpdatePanel,里面有一个按钮和TextBox。没有什么不寻常之处(它不在转发器内,也不在动态控件内)。

异步回发在我的测试服务器(Windows Server 2003)上运行良好。

然而,当我复制到我的网络托管公司(smarterasp.net,Server 2012)时,它会进行完整的回发。我尝试了托管控制面板中的所有可用设置,但没有任何效果(例如,HTTP压缩,集成模式,输出缓存)。

是否有任何常见原因导致这种情况发生在不同的服务器上?

<asp:UpdatePanel ID="panSlug" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="form-group">
            <asp:Label ID="lblSlug" runat="server" AssociatedControlID="txtSlug" Text="Slug"></asp:Label>
            <div class="input-group">
                <asp:TextBox ID="txtSlug" runat="server" CssClass="form-control" MaxLength="100"></asp:TextBox>
                <span class="input-group-btn">
                    <asp:Button ID="btnSlugSuggest" runat="server" CssClass="btn btn-default" OnClick="btnSlugSuggest_Click" Text="Suggest" />
                </span>
            </div>
            <asp:RequiredFieldValidator ID="valSlug" runat="server" ControlToValidate="txtSlug" Display="None" ErrorMessage="Slug is a required field" ValidationGroup="Product"></asp:RequiredFieldValidator>
            <p class="help-block">Slug is the URL of the product (no spaces or non alpha numeric characters)</p>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

查看本地服务器上的输出HTML,该按钮呈现为带有onclick事件的输入类型按钮,而在实时服务器上,它呈现为没有onclick事件的提交按钮。

在Developer Tools控制台中显示两个错误:&#34; ASP.NET Ajax客户端框架无法加载&#34;和#34;系统没有定义&#34;。

2 个答案:

答案 0 :(得分:1)

事实证明,我在global.asax中设置了一个页面路由,阻止了axd文件的加载。

我在global.asax中缺少routes.Ignore("{resource}.axd/{*pathInfo}");

希望这个答案可以帮助其他人作为UpdatePanels问题的另一种可能的解决方案。

答案 1 :(得分:0)

将其添加到UpdatePanel:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSlugSuggest" />
</Triggers>