Pregunta

He editado esta pregunta original porque creo que he reducido el problema ...

Tengo una vista en mi sitio que no me permite poner $ document.ready dentro de un marcador de contenido de la página maestra. He despojado esta página hasta los huesos y lo único que tiene de especial es que tiene una ruta personalizada en global.asax

 routes.MapRoute("Books",
                 "{controller}/{action}/{keywords}/{pageNumber}",
                  new { controller = "Books", action = "SearchResults" }
                 );

¿Alguna idea de por qué esta ruta personalizada dejaría de $ document.ready funcionando correctamente cuando se coloca en una zona de marcador de contenido de páginas maestras?

¿Fue útil?

Solución

Tuve el mismo problema y resultó que cuando usé una ruta determinada, cambió la jerarquía de archivos percibida del sitio, como el enlace ../../Content para el archivo .js ya no funcionaba. . Lo arreglé cambiando mi referencia de script jquery para que se vea así:

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>

Otros consejos

Su página maestra (o vea la página si no está usando páginas maestras) necesita hacer referencia a jquery. Esto se incluye en la última versión Beta del marco MVC.

Verifique para asegurarse de que tiene jQuery incluido en la etiqueta de su página.

compruebe la sintaxis también ...

$(document).ready(function() { alert('loaded'); });

estas versiones abreviadas también funcionan:

$().ready(function() { alert('loaded'); });
$(function() { alert('loaded'); });

Simplemente péguelo en algún lugar dentro del control de contenido de su página de visualización en una etiqueta <script ...>.

<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
    <div class="contentItem">
        <%!-- yadda --%>
    </div>

    <script type="text/javascript">
        $(document).ready(function() {
         // do your worst
        });
    </script>
</asp:Content>

Si tiene cosas que se ejecutan en cada página, puede pelarlas en un archivo .js y acceder a ellas desde la página maestra. Pero para las funciones relacionadas con una vista específica, esta es probablemente la forma más sencilla y más fácil de mantener.

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