我正在建立一个新网站并想使用 Ajax 控件。
我是否需要在 MasterPage 和每个内容页面上都放置一个 ScriptManager 控件?或仅在 MasterPage 上?(或仅在内容页面上?)
我正在建立一个新网站并想使用 Ajax 控件。
我是否需要在 MasterPage 和每个内容页面上都放置一个 ScriptManager 控件?或仅在 MasterPage 上?(或仅在内容页面上?)
内容页面或 MasterPages 上只能有一个 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。你可以把它放在任何一个上。将它放在母版页上可以省去在内容页上添加它的任务。但是,只有在内容页面中有自定义脚本时,才能在脚本管理器中编写自定义脚本。如下所述,拥有两个 ScriptManager 会在加载页面时引发错误。
只是母版页。除非您要使用上面提到的自定义脚本,否则我建议您将其放在母版页上,这样您就不必将其放在要使用 ajax 控件的每个页面上。
如果你同时拥有它,它会抛出一个错误,说你只能有一个脚本管理器/页面
您在寻找什么功能?如果您改用jQuery,您可能会做同样多或更多的事情,但占用空间要轻得多,代码性能更好,并且可以更好地控制实际发生的事情。看看这个!
jQuery vs ASP.NET AJAX 不是一个“非此即彼的问题”。尽管它们具有重叠的功能,但它们非常不同,我每天都根据任务使用它们。尽可能使用 jQuery - 但是 MS AJAX 添加了大量的 ASP.NET 便利功能。