Переместите в пользовательский элемент управления, например. MyScriptManager.ascx - единственным кодом в файле .ascx будет тег ScriptManager - тогда вы можете установить свойство Visible в своем пользовательском элементе управления, чтобы контролировать, будет ли отображаться ScriptManager.
<foo:MyScriptManager id="scriptManager" runat="server" Visible="false" />
Возможно, вы даже можете добавить свойство в свою мастер-страницу, которое вы можете использовать на своих страницах контента, чтобы показать / скрыть ScriptManager:
// In your master page
public bool ShowScriptManager {get; set;}
// In your master page's Page_Load
private void Page_Load(object sender, EventArgs e) {
...
scriptManager.Visible = ShowScriptManager;
...
}
Поскольку для большинства ваших страниц требуется ScriptManager, возможно, было бы целесообразно установить для него значение по умолчанию true - я думаю, вы можете сделать это в конструкторе главной страницы метода Page_Init:
public SiteMaster() {
...
ShowScriptManager = true;
...
}
// Or alternatively
private void Page_Init(object sender, EventArgs e) {
...
ShowScriptManager = true;
...
}
Тогда, если вы установили MasterType на своих страницах контента:
<%@ MasterType VirtualPath="~/path/to/master/page" %>
Вам просто нужно сделать что-то подобное в содержательной странице Page_Load :
Master.ShowScriptManager = false;