我正在建设一个新网站,想使用Ajax控件。
我需要在MasterPage和每个内容页上都放置ScriptManager控件吗?还是只需要在MasterPage上放置?(或者只需要在内容页上放置?)
我正在建设一个新网站,想使用Ajax控件。
我需要在MasterPage和每个内容页上都放置ScriptManager控件吗?还是只需要在MasterPage上放置?(或者只需要在内容页上放置?)
内容页面和主控件页面上只能有一个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>
您只允许有一个ScriptManager。您可以将其放在任何一个页面上。将其放在主页面上可以节省在内容页面上添加它的任务。但是,如果要在脚本管理器中编写自定义脚本,则只能在内容页面上使用它。如下所述,在加载页面时,有两个ScriptManagers会引发错误。
只需要主页面。除非您要使用上述提到的自定义脚本,否则建议将其放在主页面上,这样您就不必在每个使用ajax控件的页面上都放置它。
如果两者都有,它会抛出一个错误,说您只能有一个scriptmanager/page。
jQuery和ASP.NET AJAX并不是一个“非此即彼”的问题。虽然它们有重叠的功能,但它们非常不同,我每天根据任务使用两者。尽可能使用jQuery - 但MS AJAX添加了大量的ASP.NET便利功能。