Pregunta

Tengo un botón para cerrar sesión en mi menú principal y quiero que ejecute un método para cerrar sesión. Sin embargo, quiero almacenar este método en una clase separada como método estático, ya que este código también se puede llamar desde otras ubicaciones.

Mensaje de error del compilador:

CS1061: 'ASP.adminpages_masterpages_adminsystem_master' no contiene una definición de 'ExtensionMethods' y no se puede encontrar ningún método de extensión 'ExtensionMethods' que acepte un primer argumento del tipo 'ASP.adminpages_masterpages_adminsystem_master' (falta una directiva de uso o una referencia de ensamblaje?)

Clase My ExtensionMethods:

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

Mi botón:

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

Ideas?

¿Fue útil?

Solución

Debe manejar el clic del botón en el código subyacente y dejar que llame a su método estático en otra clase.

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

Código subyacente:

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

Verifique la referencia para más ejemplos: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.click.aspx

Otros consejos

Su controlador de eventos realmente debería estar en la clase de página y no ser estático. Idealmente, debería estar protegido, pero puede ser público.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top