【问题标题】:UpdatePanel full postback on production server but async on local serverUpdatePanel 在生产服务器上完全回发,但在本地服务器上异步
【发布时间】:2014-12-07 12:06:37
【问题描述】:

我有一个简单的 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 事件的提交按钮。

在开发者工具控制台中显示两个错误:“ASP.NET Ajax 客户端框架加载失败”和“未定义系统”。

【问题讨论】:

  • 谢谢@Nahrehs,但那里似乎没有答案对我有帮助。两台服务器都运行 4.0,我的本地是 IIS6,不知道 live 是什么,但必须是 7.x 或更高版本。

标签: asp.net webforms updatepanel


【解决方案1】:

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

我缺少来自 global.asax 的 routes.Ignore("{resource}.axd/{*pathInfo}");

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

【讨论】:

    【解决方案2】:

    将此添加到更新面板:

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

    【讨论】:

    • 您是否尝试过使用 F12 工具并查看控制台中是否报告了任何错误?
    • 没有错误。只会发生完整的回发。查看源代码,按钮呈现为提交,而不是带有 onclick 事件的按钮。
    • 抱歉出现错误:“ASP.NET Ajax 客户端框架加载失败”和“未定义系统”。
    • 这是你的确凿证据。 Namrehs 链接应该有所帮助。脚本未正确提供。如果站点使用身份验证,请确保各种 .axd 处理程序和 css/js 目录启用了匿名访问。如果这些被拒绝,则无法提供脚本。
    猜你喜欢
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多