Domanda

Ho un pulsante di logout nel mio menu principale e voglio che esegua un metodo per disconnettersi. Tuttavia, voglio archiviare questo metodo in una classe separata come metodo statico, poiché questo codice può essere chiamato anche da altre posizioni.

Messaggio di errore del compilatore:

CS1061: 'ASP.adminpages_masterpages_adminsystem_master' non contiene una definizione per 'ExtensionMethods' e nessun metodo di estensione 'ExtensionMethods' che accetta un primo argomento di tipo 'ASP.adminpages_masterpages_adminsystem_master' potrebbe essere trovato (ti manca una direttiva usando o un riferimento di assieme?)

La mia classe ExtensionMethods:

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

Il mio pulsante:

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

idee?

È stato utile?

Soluzione

Devi gestire il clic sul pulsante code-behind e lasciare che chiami il tuo metodo statico in un'altra classe.

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

Codice-behind:

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

Controlla il riferimento per altri esempi: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.click.aspx

Altri suggerimenti

Il gestore dell'evento dovrebbe essere veramente nella classe di pagina e non essere statico. Dovrebbe essere, idealmente, protetto ma può essere pubblico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top