Ajax脚本管理器和主页面

9

我正在建设一个新网站,想使用Ajax控件。

我需要在MasterPage和每个内容页上都放置ScriptManager控件吗?还是只需要在MasterPage上放置?(或者只需要在内容页上放置?)

5个回答

13

内容页面和主控件页面上只能有一个ScriptManager控件。如果您的MasterPage上有一个ScriptManager控件,您可以在内容页面上拖放一个ScriptManagerProxy控件来使用任何特定的ASP.NET AJAX功能,例如:

<asp:Content ID="Content1" ContentPlaceHolderID="BodyContent" runat="server">
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/MyWebServices/YourCoolWebService.asmx" />
        </Services>
    </asp:ScriptManagerProxy>

    <%-- more content stuff goes here --%>
<asp:Content>

1
如果我只在内容页中使用了一个Ajax控件...那么我是否仍然需要在控件页上使用ScriptManagerProxy控件? - Billy
1
如果您只想在内容页上使用ASP.NET AJAX控件,则无需ScriptManagerProxy。 - Bullines

6

您只允许有一个ScriptManager。您可以将其放在任何一个页面上。将其放在主页面上可以节省在内容页面上添加它的任务。但是,如果要在脚本管理器中编写自定义脚本,则只能在内容页面上使用它。如下所述,在加载页面时,有两个ScriptManagers会引发错误。


1

只需要主页面。除非您要使用上述提到的自定义脚本,否则建议将其放在主页面上,这样您就不必在每个使用ajax控件的页面上都放置它。

如果两者都有,它会抛出一个错误,说您只能有一个scriptmanager/page。


1
你需要什么功能?使用jQuery,你很可能能够做到同样多甚至更多,但是代码却更轻量化、性能更好,并且对于实际发生的事情有更好的控制。快来试试吧!

我想使用Ajax控件。 - Billy
如果你真的想使用Ajax控件,我不会阻止你。但是,如果你想要获取Ajax控件提供的某些功能,我认为你会惊讶地发现,使用jQuery做同样的事情甚至更容易,并且效果更好。 - Tomas Aschan
使用ajax控件是不错的选择,但在某些情况下,jquery会非常有用。如果您以前从未使用过它,我强烈建议您去了解一下。如果您将要编写任何javascript代码,它可以帮您省下很多时间。 - Josh Mein

1

jQuery和ASP.NET AJAX并不是一个“非此即彼”的问题。虽然它们有重叠的功能,但它们非常不同,我每天根据任务使用两者。尽可能使用jQuery - 但MS AJAX添加了大量的ASP.NET便利功能。


这应该被改为对Tomas Lycken答案的注释。 - MGOwen
对于普通的Web应用程序(ASP.NET,J2EE,PHP等),我发现jQuery非常有帮助。我刚开始考虑在我的SharePoint Web部件中,在Web部件页面中使用Ajax。从这个角度来看,哪个更好-ASP.NET AJAX还是jQuery? - Web User

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接