我正在编辑这个原始问题,因为我认为我已经缩小了问题...
我的网站中有一个视图,不允许我将$ document.ready放在母版页内容占位符中。我已经把这个页面剥离到了骨架上,唯一特别之处在于它在global.asax中有一个自定义路由
routes.MapRoute("Books",
"{controller}/{action}/{keywords}/{pageNumber}",
new { controller = "Books", action = "SearchResults" }
);
知道为什么这个自定义路由会在放入masterpages contentplaceholder区域时停止$ document.ready正常工作吗?
答案 0 :(得分:5)
我遇到了同样的问题,事实证明,当我使用某个路径时,它改变了网站的感知文件层次结构,例如.j。文件的../../Content链接不再起作用。我通过更改我的jquery脚本引用来修复它,如下所示:
<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>
答案 1 :(得分:2)
您的母版页(如果您没有使用母版页,则查看页面)需要引用jquery。这包含在MVC框架的最新Beta版本中。
检查以确保您的网页标记中包含jQuery。
检查语法......
$(document).ready(function() { alert('loaded'); });
这些缩短版本也有效:
$().ready(function() { alert('loaded'); });
$(function() { alert('loaded'); });
答案 2 :(得分:1)
只需将其粘贴到<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文件并从母版页访问它。但是对于与特定视图相关的功能,这可能是最简单的维护方式。