Frage

Ich habe einen Abmeldeknopf auf meinem Haupt-Menü und ich möchte es, ein Verfahren laufen, um sich abzumelden. Allerdings mag ich als statische Methode diese Methode in einer separaten Klasse speichern, da dieser Code von anderen Standorten kann auch genannt werden.

Compiler Fehlermeldung:

CS1061: 'ASP.adminpages_masterpages_adminsystem_master' does not contain a definition for 'ExtensionMethods' and no extension method 'ExtensionMethods' accepting a first argument of type 'ASP.adminpages_masterpages_adminsystem_master' could be found (are you missing a using directive or an assembly reference?)

Meine Extension Klasse:

namespace ExtensionMethods
{
    public static class MyExtensionMethods
    {
        public static void Logout(object sender, EventArgs e)
        {
               //Logout Code
        }
    }
}

Meine Taste:

<asp:LinkButton runat="server" OnClick="ExtensionMethods.MyExtensionMethods.Logout" Text="Log Out"></asp:LinkButton>

Ideen?

War es hilfreich?

Lösung

Sie müssen den Button-Klick auf den Code-behind zu handhaben und lassen Sie sich Ihre statische Methode in anderen Klasse aufrufen.

    <asp:LinkButton id="button1" runat="server" 
       OnClick="LinkButton_Click" Text="Log Out"></asp:LinkButton>

-Code-behind:

   void LinkButton_Click(Object sender, EventArgs e) 
   {
      ExtensionMethods.MyExtensionMethods.Logout(sender, e);
   }

Überprüfen Sie die Referenz für weitere Beispiele:

Andere Tipps

Ihre Event-Handler sollten wirklich in der Seitenklasse sein und nicht statisch sein. Es soll im Idealfall sein, geschützt, aber es kann öffentlich sein.

scroll top