Mova ASP.NET métodos de página Proxy a partir da página
-
05-07-2019 - |
Pergunta
Eu estou usando métodos de página ASP.NET para a minha candidatura. Tudo funciona como charme, mas eu não quero que meus métodos de página gerado em linha na página.
-
Existe alguma maneira para movê-los para um arquivo WebResource.axd ou algo similar. Eu realmente não quero escrever meu próprio procurador apenas para mover o gerado fora da página.
-
Eu tenho vários métodos de página em minha página base. Existe uma maneira de dizer o gerente de script que métodos que deseja incluir para a página específica como eu não estou usando todos os métodos em todas as páginas?
Solução
Eu tenho vários métodos de página no meu página base. Existe uma maneira de dizer o gerente de script que métodos que eu quero incluído para a página específica como eu Não estou usando todos os métodos em todas as páginas?
Eu não tenho certeza se isso é possível. O que eu faria em seguida, porém, é para mover seus métodos que são específicos para uma determinada página na própria página real e não na página de base.
O que você poderia fazer é usar webservices ASMX em vez de usar métodos de página para acessar a lógica do lado do servidor a partir do JavaScript.
[System.Web.Script.Services.ScriptService]
public class MyWebService
{
[WebMethod]
public string GetData(int id)
{
//do some work
//return result
}
}
Em seu aspx ou ascx código que você faça o seguinte:
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
}
Você teria que olhar sobre a forma como o objeto de voltar do seu webservice é codificada. Normalmente ela é codificada como Json. Não me lembro agora se este tem de ser especificado explicitamente em seu web.config.
// Edit:
O que eu esqueci. Você pode usar o asp.net ScriptManager para registrar seus scripts e serviços web:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/scripts/WebServiceScripts.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="~/Services/MyWebService.asmx" />
</Services>
</asp:ScriptManager>