2009-05-21 34 views
29

Aunque el clásico método ASP del lado del servidor incluye trabajos en ASP.NET, me da la impresión de que no es el método preferido. ¿Cómo se supone que "estoy logrando el mismo efecto?ASP.NET equivalente del lado del servidor incluye

Esta es la forma en que lo estoy haciendo en este momento:
<!-- #include file ="functionlib.aspx" -->

+0

Aunque no es tan específico como su pregunta, usted podría encontrar este útil: http://stackoverflow.com/questions/23899/best-practices-for-refactoring-classic-asp –

Respuesta

34

Ahora tiene una serie de opciones que proporcionan este efecto, pero de una manera diferente.

  • controles de usuario (.ascx)
  • páginas principales (.master)
  • Controles del lado del servidor (.dll)
  • bibliotecas de clases (DLL)
  • Clases App_Code (cs /. vb)

Cada uno se utiliza de forma diferente para lograr cosas diferentes. Depende de lo que realmente estás tratando de hacer. Dado el nombre de su archivo de inclusión, me imagino que está tratando de incluir funciones de la biblioteca que se utilizarán en el contexto de su página.

En consecuencia, debe escribir una biblioteca de clases que contenga los métodos e importarlos en su aplicación/aspx.

Si está buscando plantillas de una página que hará la mayor parte del trabajo de diseño para proporcionar un cuerpo para diferentes contenidos, entonces le interesarán las páginas maestras.

Si está viendo los controles de plantillas que se pueden usar en muchas páginas, entonces estará detrás de los Controles del usuario.

Si está viendo los controles de plantillas que pueden ser utilizados por muchos usuarios en muchos proyectos, entonces verá los controles del lado del servidor.

Si está buscando en una biblioteca de clases/métodos, desarrollará una biblioteca de clases o utilizará una clase app_code que se puede compilar JIT la primera vez que se llame. Este podría considerarse más como ASP clásico, pero en realidad funciona más como una clase de una biblioteca de clases como una sola unidad.Puede llamar desde su código subyacente o dentro de las etiquetas <%%> en su código aspx/ascx sin requerir una referencia a una biblioteca de clases.

Realmente ya no usamos "incluye" per se, pero cada una de estas herramientas en su kit de herramientas le permite proporcionar conceptos similares para diferentes escenarios. Como desarrollador, interactuarás de manera diferente con el ciclo de vida completo de la página de tus páginas web. ASP.NET es una bestia muy diferente que ASP clásico. Realmente requiere una visión/enfoque diferente y necesitará cierta cantidad de paciencia para descubrir las diferencias.

+2

No olvides las clases de App_Code, que están más cerca del clásico modelo ASP que una Class Library. –

+0

Oh sí, olvidé esos ... gracias – BenAlabaster

8

Si you'e usando ASP.NET MVC continuación Html.RenderPartial es su amigo.

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial.aspx

Una vista parcial puede ser implementado como un Ascx o un .aspx y poner la llamada anterior en su página "primaria" básicamente dice "obtener la salida desde este punto de vista parcial y la hacen aquí".

Las vistas parciales pueden hacer uso de ViewData que su vista principal recibió del controlador.

+0

Sólo si estás en ASP.NET MVC. –

+1

Er ..... sí. Por alguna razón, leí "MVC" en la pregunta cuando claramente no está allí. ¿La gente sigue haciendo ASP.NET antiguo? ;-) –

+0

lol @ Martin ... er, sí. MVC es solo una moda que todos dejarán de usar la próxima semana. Que las guerras religiosas comiencen;) – BenAlabaster

1

Parece que lo que necesita para ver es todo el concepto de MasterPages.

A menos que solo esté mirando la importación de funciones y otras utilidades (no contenido html). Si ese es el caso (y está utilizando el modelo de código subyacente), solo debe poder incluir el archivo o espacio de nombres apropiado utilizando el comando de importación en la parte superior de su página .vb (ajuste según corresponda para C#).

Cuestiones relacionadas