Domanda

Sto usando i metodi di pagina ASP.NET per la mia applicazione. Tutto funziona come un incantesimo ma non voglio che i miei metodi di pagina vengano generati in linea nella pagina.

  1. Esiste un modo per spostarli in un file WebResource.axd o qualcosa di simile. Non voglio davvero scrivere il mio proxy solo per spostare quello generato dalla pagina.

  2. Ho più metodi di pagina nella mia pagina di base. C'è un modo per dire al gestore dello script quali metodi voglio includere per quella particolare pagina poiché non sto usando tutti i metodi su tutte le pagine?

È stato utile?

Soluzione

  

Ho più metodi di pagina nel mio   pagina di base. C'è un modo per dirlo   gestore degli script quali metodi desidero   incluso per la pagina particolare come I   non sto usando tutti i metodi su tutte le pagine?

Non sono sicuro che sia possibile. Quello che farei quindi è spostare i tuoi metodi specifici di una determinata pagina nella pagina stessa anziché nella pagina di base.

Quello che potresti fare è usare asmx webservices invece di usare i metodi di pagina per accedere alla logica lato server da JavaScript.

[System.Web.Script.Services.ScriptService]
public class MyWebService
{

   [WebMethod]
   public string GetData(int id)
   {
      //do some work
      //return result
   }

}

Nel tuo codice aspx o ascx fai quanto segue

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
}

Dovresti vedere come viene codificato l'oggetto di ritorno del tuo servizio web. Normalmente è codificato come Json. Non ricordo ora se questo deve essere specificato esplicitamente nel tuo web.config.

// Modifica:
Quello che ho dimenticato. È possibile utilizzare asp.net ScriptManager per registrare script e servizi 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top