2011-05-22 12 views
5

Por el momento, mi proyecto de sitio web en asp.NET consta de 5 archivos .aspx. He definido las mismas funciones en cada archivo .aspx. Lo que quiero es una forma de crear mi propia biblioteca/archivo de funciones, que podría incluir en mis scripts .aspx.¿Cómo reutilizar las mismas funciones en diferentes archivos .aspx o crear una biblioteca de funciones?

Mientras buscaba la solución, solo encontré esto Incluyendo archivos dinámicamente en ASP.NET que se utiliza para incluir dinámicamente scripts HTML y de cliente en .aspx. Entonces no es lo que necesito

+0

.asp es "ASP clásico", .aspx es ASP.NET, ¿a cuál de estos dos se está refiriendo? –

+0

Oops, .aspx es lo que quise decir. – afaf12

Respuesta

7

Puede crear una biblioteca muy fácilmente en ASP.NET.

Decidir sobre un espacio de nombres y crear nuevas clases bajo ese espacio de nombres (por lo general cada clase en un archivo separado, pero no se cumple)

Si los archivos ASPX no tienen código subyacente que recomendaría para agregarlo Sin embargo, independientemente de si hay un código subyacente o no, deberá asegurarse de incluir el espacio de nombres de los archivos de la biblioteca antes de poder acceder a las clases de la biblioteca y sus métodos.

Sintaxis para la inclusión de un espacio de nombres en un archivo ASPX es:

<%@ Import Namespace="mylibrarynamespace" %> 

En el código subyacente es:

using mylibrarynamespace; 

espero que ayude.

2

¿Qué le parece hacer una clase base de la cual derivan todas sus clases de página? Esa parece ser la forma más sencilla de hacerlo.

1

Basta con crear un archivo .cs y colocarlo en su directorio App_Code. Haga pública su clase y las funciones apropiadas, y ya está listo.

2

Hay muchos enfoques que puede tomar para compartir el código entre las páginas. Realmente depende del tipo de funcionalidad que estés tratando de lograr.

Éstos son algunos que he encontrado en el pasado:

  1. Usando una página base - usted puede hacer sus páginas aspx derivan de una clase personalizada que dervies de la página. De esta manera, puedes llamar a base.MethodName(). Esto es especialmente útil si necesita acceder a miembros/eventos privados/protegidos.
  2. Ponga los métodos en una clase: puede crear una clase personalizada que aloje sus métodos. Sugiero hacer esto si todos los métodos están relacionados y tiene sentido agruparlos en una clase. Sus requisitos también dictarán si la clase debe ser estática/instancia (para mí, es más como elegir entre System.IO.File vs System.IO.FileInfo). Lo malo de esto es que no puedes acceder a ningún miembro privado de la página ni disparar ninguno de sus eventos.
  3. Métodos de extensión: es algo así como # 2, excepto que es estático y está muy relacionado con el tipo de página. La sintaxis lo hace más legible (en mi opinión). Sin embargo, hay ciertos design guidelines que debes considerar.
0

siga estos 5 sencillos pasos! para ahorrar toneladas de reescrituras de funciones entre formularios web asp.net!

1) Cree una clase dentro de la carpeta App_Data: (haga clic con el botón derecho en la aplicación> Agregar> Agregar ASP.carpeta neto) (Agregar> Nuevo elemento> Clase)

importante! cuando agrega estas clases, debe cambiar la acción de compilación a "compilar" en lugar de "contenido" en las propiedades del archivo; de lo contrario, su código subyacente no reconocerá los espacios de nombres importados.

2) Dentro de la clase, cree métodos:

namespace applicationName.App_Code 
    { 
     public class ClassName 
      { 
       public string classMethod() 
        { 
        return "hello"; 
        } 
      } 
    } 

3) En el código subyacente de cualquier forma, incluya esta cabecera de la clase:

using applicationName.App_Code; //add this 

4) En el código subyacente de esta forma, crear una instancia de la clase:

ClassName classInstanceName = new ClassName(); //add this 

5) Llame al método en su forma de código subyacente

classInstanceName.classMethod() 
Cuestiones relacionadas