2011-02-24 53 views
1

我工作的一个ASP.Net Web表单应用程序,我碰到的一个独特问题。 MasterPage上有更新面板的脚本管理器,以及调用母版页的子页面中的脚本管理器。这是因为我相信你会注意到会引发异常并导致webapp崩溃。重复的脚本经理

我试着编程排除从代码中的ScriptManager +更新面板如下:

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

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

+0

在6年多我做ASP.NET,我_永远_使用'<%'。我一直认为这是“旧式”(ASP),并打破了ASP.NET背后的想法。 – 2011-02-24 14:25:59

+0

无可否认,这是从必然 – lazyPower 2011-02-24 14:26:43

+1

@Uwe避免蜂蜇语法只是搬起石头砸自己的脚一个肮脏的黑客。仅仅因为它*可能被滥用并不意味着它不应该被使用。 – 2011-02-24 14:31:29

回答

3

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

+0

这是值得更多的研究更新面板的功能,感谢你指着我在正确的方向 – lazyPower 2011-02-24 15:22:05

0

你没有在页面再次需要一个脚本管理器,如果你在母版页有它。 删除,并尝试

+0

它打破在子页面 – lazyPower 2011-02-24 14:29:03

0

我最终复制了母版页并省略了更新面板/ scriptmanager代码。这似乎是针对特定情况的最优雅的解决方案。不过,我觉得ScriptManagerProxy答案拥有最好的解决方案,但是masterpage的重复不可能。