Aufrufen einer Web-Methode von ASPX-Code Hinter

Ich versuche herauszufinden, ein Weg, den ich nennen kann, der Web-Methode (die sich als eine öffentliche, statische Methode im CodeBehind einer aspx-Seite) aus einem anderen ASPX-Code Hinter der Seite.

Dies ist der code hinter der Seite A. aspx

public partial class PageA : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    //other code not relevant is here  
    }

    [WebMethod(true)]
    public static string GetStringInfo()
    {
         //do some stuff here to build my string
         //return string
    }
}

Auf Seite B, ich muss in der Lage sein zu rufen GetStringInfo() beim laden der Seite oder eine andere Veranstaltung, um sich die Informationen. die GetStringInfo (), ist Recht Komplex und aus Gründen, die außerhalb meiner Kontrolle sind, können nicht verschoben werden, an anderer Stelle oder wieder aufgebaut gegenwärtig.

Wie kann ich verbrauchen die web-Methode, die oben von einer anderen Seite den code hinter?

Habe ich versucht, das instanziieren einer Kopie von der anderen Seite (PageB), wie:

public partial class PageB : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       PageA page = new PageA();
       page.GetStringInfo();        
    }
}

Ist hier das problem, da es dynamisch kompiliert wird, weiß ich nicht eine einfache namespace zu verweisen und zuzugreifen. Ich habe versucht, das hinzufügen ein, und er ignoriert es.

Diesem Projekt steht .net 3.5, C#, und ist ein Website-Projekt (nicht-web-Anwendung).

Jede Hilfe ist willkommen!

Es ist statisch, rufen Sie es mit PageA.GetStringInfo();
Welche Art von Fehler sind Sie immer mit der aktuellen code-snippet?
Das problem ich bin immer ist es nicht die Feststellung, dass PageA überhaupt existiert. Also So wie ich es versuche zum instanziieren der Seite, es fragt nur mich zum generieren einer stub-Methode für Sie statt finden, die Klasse der anderen Seite.
Sind die 2 Seiten in der gleichen namespace? Wenn kein namespace deklariert, auf die 2 Klassen, versuchen ausdrücklich deklarieren beide Seiten in der gleichen namespace.
BTW: sehr schlechtes design, um die Seiten voneinander abhängig wie die. Eine Seite sollte sich auf Entitäten und Logik nicht auf einer anderen Seite und steuert es enthält... in der Tat seit dem GetStringInfo statisch ist, können Sie nicht einmal Zugang zu der Seite Steuerelemente aus, und es erzählt Sie, dass solche Methode hat, um woanders zu sein und nicht in die Seite.

InformationsquelleAutor Delebrin | 2011-09-06

Schreibe einen Kommentar