Вопрос

Я редактирую этот исходный вопрос, так как думаю, что сузил проблему...

У меня на сайте есть одно представление, которое не позволяет мне поместить $document.ready в заполнитель содержимого главной страницы.Я разделил эту страницу до минимума, и единственное, что в ней особенного, это то, что у нее есть собственный маршрут в global.asax.

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

Есть идеи, почему этот пользовательский маршрут может помешать правильной работе $document.ready при помещении в зону заполнителя содержимого мастер-страницы?

Это было полезно?

Решение

У меня была та же проблема, и оказалось, что когда я использовал определенный маршрут, он изменил воспринимаемую файловую иерархию сайта, например, ссылка ../../Content для файла .js больше не работала.Я исправил это, изменив ссылку на сценарий jquery так:

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

Другие советы

Ваша главная страница (или страница просмотра, если вы не используете главные страницы) должна ссылаться на jquery. Это включено в последнюю бета-версию инфраструктуры MVC.

Убедитесь, что JQuery включен в тег вашей страницы.

также проверьте синтаксис ...

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

эти сокращенные версии также работают:

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

Просто вставьте его где-нибудь в элемент управления контентом страницы просмотра в теге <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>

Если у вас есть материал, который запускается на каждой странице, вы можете скопировать его в файл .js и получить к нему доступ с главной страницы. Но для функций, относящихся к конкретному представлению, это, вероятно, самый простой способ и самый простой в обслуживании.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top