【问题标题】:Duplicate Script Managers重复的脚本管理器
【发布时间】:2011-02-24 14:21:58
【问题描述】:

我正在开发一个 ASP.Net 网络表单应用程序,但遇到了一个独特的问题。 MasterPage 上有一个用于更新面板的脚本管理器,以及调用母版页的子页面中的脚本管理器。我相信您会注意到这会导致抛出异常并使 web 应用程序崩溃。

我尝试以编程方式从代码中排除脚本管理器 + 更新面板,如下所示:

<% If Not (Result.RawURL.Contains("ExcludedPageDirectory") Then %>
<!-- all that code goes here -->
<% End If%>

但是我认为只是源代码中存在脚本管理器标签导致了错误。我将如何以编程方式处理这个问题?

【问题讨论】:

  • 在我做 ASP.NET 的 6 年多的时间里,我从未使用过&lt;%。我一直认为这是“旧式”(ASP),打破了 ASP.NET 背后的理念。
  • 诚然,这是出于必要的肮脏黑客行为
  • @Uwe 避免蜜蜂蜇伤语法只是在踢自己的脚。仅仅因为它可以被滥用并不意味着它不应该被使用。
  • @Rex 谢谢,听起来很合理。与goto 和类似的“工具”相同。

标签: asp.net webforms scriptmanager


【解决方案1】:

一个页面在其层次结构中只能包含一个 ScriptManager 控件。当父页面已经有 ScriptManager 控件时,要为嵌套页面、用户控件或组件注册服务和脚本,请使用 ScriptManagerProxy 控件(来源:MSDN

【讨论】:

  • 这需要更多调查,感谢您为我指明正确的方向
【解决方案2】:

如果您在母版页中有脚本管理器,则不需要在页面中再次使用它。 删除它并尝试

【讨论】:

  • 它破坏了子页面中更新面板的功能
【解决方案3】:

我最终复制了母版页并遗漏了更新面板/脚本管理器代码。对于给定的情况,这似乎是最优雅的解决方案。但是,如果无法复制母版页,我认为 ScriptManagerProxy 的答案是最好的解决方案。

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 2012-01-23
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    相关资源
    最近更新 更多