usando la página de vista MVC + $ (documento) .ready
-
05-07-2019 - |
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?
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.