используя страницу просмотра MVC + $(document).ready
-
05-07-2019 - |
Вопрос
Я редактирую этот исходный вопрос, так как думаю, что сузил проблему...
У меня на сайте есть одно представление, которое не позволяет мне поместить $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 и получить к нему доступ с главной страницы. Но для функций, относящихся к конкретному представлению, это, вероятно, самый простой способ и самый простой в обслуживании.