2009-11-20 6 views
16

¿Cómo inyecto una etiqueta de script tales comoAdición de una referencia de script para la etiqueta de la cabeza html desde una vista parcial

<script src="somejsfile"></script> 

o

<script type="text/javascript>some javascript</script> 

en la etiqueta de la cabeza de una página de una parcial ¿ver?


actualización: Respuesta a la vieja pregunta Se trata de ASP.NET MVC. Podemos usar RenderSection. Aquí la muestra para MVC 3 utilizando la maquinilla de afeitar vista del motor:

diseño de vista o la página maestra:

<html> 
    <head> 
    <script ...></script> 
    <link .../> 
    @RenderSection("head") 
    </head> 
    <body> 
    ... 
    @RenderBody() 
    ... 
    </body> 
</html> 

Ver, por ejemplo, Inicio:

@section head{ 
    <!-- Here is what you can inject the header --> 
    <script ...></script> 
    @MyClass.GenerateMoreScript() 
} 
<!-- Here is your home html where the @RenderBody() located in the layout. --> 
+0

puede simplemente incude la etiqueta

2

Incluso si la respuesta de THX funciona, no es una buena como la intención de MVC es ser sin estado de naturaleza. Por otra parte su solución no permite que se coloquen los guiones donde deben ir - la mayoría de los sitios quieren que sus declaraciones de secuencia de comandos en la parte inferior de su página justo antes de la etiqueta </body>, ya que es mejor para el rendimiento y la optimización de motores de búsqueda.

Hay una respuesta, gracias a Darin Dimitrov:

Using sections in Editor/Display templates

Su respuesta le permite registrar scripts de una vista parcial dentro de la vista de diseño.

La advertencia es que marca elementos usando un GUID en un objeto de diccionario, por lo que no hay garantía de que los guiones se representen en la página maestra en el mismo orden en que aparecen en la vista parcial.

Hay dos soluciones para ello:

  1. Registro sólo el 1 script desde una vista parcial -o-
  2. Cambiar su aplicación ayudante HTML para apoyar el pedido

Estoy tratando de trabajar en el último yo mismo.

Buena suerte.

+0

¡Abra una solución codeplex/nuget! ¡Por favor! – Shimmy

Cuestiones relacionadas