У меня есть несколько методов страницы в моем
базовая страница Есть ли способ рассказать
менеджер сценариев, какие методы я хочу
включены для конкретной страницы, как я
я не использую все методы на всех страницах?
Я не уверен, возможно ли это. Однако я хотел бы переместить ваши методы, относящиеся к определенной странице, на саму страницу, а не на базовую страницу.
Что вы можете сделать, это использовать asmx webservices вместо использования методов страницы для доступа к серверной логике из JavaScript.
[System.Web.Script.Services.ScriptService]
public class MyWebService
{
[WebMethod]
public string GetData(int id)
{
//do some work
//return result
}
}
В вашем коде aspx или ascx вы делаете следующее
function someFunction(){
WebServiceNamespace.MyWebService.GetData(123, onSuccessCallback, onErrorCallback);
}
function onSuccessCallback(result){
//process your result. Usually it is encoded as JSON string
//Sys.Serialization.JavaScriptSerializer.deserialize(...) can be used for deserializing
}
function onErrorCallback(){
//display some info
}
Вам нужно посмотреть, как кодируется возвращаемый объект вашего веб-сервиса. Обычно это кодируется как Json. Я не помню сейчас, нужно ли это явно указывать в вашем web.config.
// Изменить:
Что я забыл Вы можете использовать asp.net ScriptManager для регистрации ваших скриптов и веб-сервисов:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/scripts/WebServiceScripts.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="~/Services/MyWebService.asmx" />
</Services>
</asp:ScriptManager>