используя страницу просмотра MVC + $ (документ) .ready - PullRequest
0 голосов
/ 29 октября 2008

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

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

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

Любая идея, почему этот пользовательский маршрут остановит $ document.work правильно работает, когда помещен в зону заполнителя содержимого masterpages?

Ответы [ 3 ]

5 голосов
/ 30 октября 2008

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

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>
2 голосов
/ 29 октября 2008

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

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

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

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

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

$().ready(function() { alert('loaded'); });
$(function() { alert('loaded'); });
1 голос
/ 29 октября 2008

Просто вставьте его где-нибудь в элемент управления контентом страницы просмотра в теге <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 и получить к нему доступ с главной страницы. Но для функций, относящихся к конкретному представлению, это, вероятно, самый простой способ и самый простой в обслуживании.

...