Frage

Ich bin mit ASP.NET Seite Methoden für meine Anwendung. Alles funktioniert wie Charme, aber ich will nicht meine Seite Methoden erzeugen inline in der Seite.

  1. Gibt es eine Möglichkeit, sie zu einer WebResource.axd Datei oder etwas ähnliches zu bewegen. Ich will nicht wirklich nur meine eigene Proxy schreiben, um die erzeugte man sich von der Seite zu bewegen.

  2. Ich habe mehrere Seite Methoden in meiner Basisseite. Gibt es eine Möglichkeit den Skript-Manager zu erzählen, die Methoden, die ich für die jeweilige Seite enthalten sein soll, da ich nicht alle Methoden verwenden auf allen Seiten?

War es hilfreich?

Lösung

  

Ich habe mehrere Seite Methoden in meinem   Basisseite. Gibt es eine Möglichkeit das zu sagen,   Skript-Manager die Methoden, die ich will   für die jeweilige Seite als ich eingeschlossen   bin nicht alle Methoden auf allen Seiten mit?

Ich bin mir nicht sicher, ob dies möglich ist. Was würde ich dann aber tun ist, um Ihre Methoden zu verschieben, die sich in der aktuellen Seite zu einer bestimmten Seite spezifisch sind und nicht in der Basisseite.

Was könnten Sie tun, ist asmx ein Web Service anstelle von Seite Methoden für den Zugriff auf serverseitige Logik von JavaScript zu verwenden.

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

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

}

In Ihrem aspx oder ascx Code Sie folgendermaßen vorgehen

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
}

würden Sie müssen sehen, wie die Rückkehr Objekt Ihrer WebService codiert. Normalerweise wird es als Json kodiert. Ich erinnere mich nicht jetzt, ob dies ausdrücklich in Ihrem web.config angegeben werden muss.

// Edit:
Was habe ich vergessen. Sie können die asp.net Script verwenden für Ihre Skripte und Web-Services Registrierung:

<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Scripts>
      <asp:ScriptReference Path="~/scripts/WebServiceScripts.js" />
   </Scripts>
   <Services>
      <asp:ServiceReference Path="~/Services/MyWebService.asmx" />
   </Services>
</asp:ScriptManager>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top