Pregunta

Estoy utilizando los métodos de página ASP.NET para mi aplicación. Todo funciona a la perfección, pero no quiero que mis métodos de página se generen en línea en la página.

  1. ¿Hay alguna forma de moverlos a un archivo WebResource.axd o algo similar? Realmente no quiero escribir mi propio proxy solo para mover el generado fuera de la página.

  2. Tengo varios métodos de página en mi página base. ¿Hay alguna manera de decirle al administrador de secuencias de comandos qué métodos quiero incluir para la página en particular, ya que no uso todos los métodos en todas las páginas?

¿Fue útil?

Solución

  

Tengo varios métodos de página en mi   página base ¿Hay alguna manera de decirle al   administrador de scripts que métodos quiero   Incluido para la página particular como yo   ¿No estoy utilizando todos los métodos en todas las páginas?

No estoy seguro de si esto es posible. Sin embargo, lo que haría entonces es mover sus métodos que son específicos a una determinada página en la propia página en lugar de en la página base.

Lo que podrías hacer es usar los servicios web de asmx en lugar de usar los métodos de página para acceder a la lógica del lado del servidor desde JavaScript.

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

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

}

En su código aspx o ascx, haga lo siguiente

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
}

Debería ver cómo se codifica el objeto de retorno de su servicio web. Normalmente se codifica como Json. Ahora no recuerdo si esto debe especificarse explícitamente en su web.config.

// Editar:
Lo que me olvidé. Puede usar el ScriptManager de asp.net para registrar sus scripts y servicios 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top