我目前正在学习使用VS2013制作ASP.NET应用程序,并逐步学习这些视频系列:
https://www.youtube.com/watch?v=aUx2Bdx68f4
使用VS2010
显示视频在其母版页中,当鼠标悬停在标签项上时,它使用以下java脚本显示子菜单框:
<script type="text/javascript" src="../JavaScript/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
function mainmenu() {
$("#nav ul").css({ display: "none" }); //Opera fix
$("#nav li").hover(function () {
$(this).find('ul:first').css({ visibility: "visible", display: "none" }).show(400);
}, function () {
$(this).find('ul:first').css({ visibility: "hidden" });
});
}
$(document).ready(function () {
mainmenu();
});
</script>
显示如下所示,当鼠标悬停在“管理”标签项上时,会显示一个子菜单框。下面的示例显示了我在~/Pages/About
页面时的情况:
到目前为止它没有问题,但当我开始在名为“Account”文件夹的解决方案的“Pages”文件夹中的子文件夹中创建webforms时(如下图所示):
然后鼠标悬停以显示子菜单框不再有效,但仅在我的“帐户”子文件夹中的页面上。以下示例是我在~/Pages/Account/Login
页面中的时间:
我对~/Pages/About
和~/Pages/Account/Login
页面使用相同的母版页,并且在视频中(使用VS2010),它可以正常工作。但它在我的应用程序中不起作用。任何人都可以解释为什么会如此?
答案 0 :(得分:1)
感谢Suprabhat Biswal先生,我从他那里得到了这个答案(请参阅聊天)。
问题是因为在我的主页中的javascript中,我把
<script type="text/javascript" src="../JavaScript/jquery-1.11.3.min.js"></script>
而不是
<script type="text/javascript" src="<%=GetBaseURL%>/JavaScript/jquery-1.11.3.min.js"></script>
第一个使jquery始终相对于当前页面的路径执行。在我的情况下,这使得在打开Login
页面时引用的jquery位于localhost:64631/Pages/JavaScript/jquery-1.11.3.min.js
(错误)而不是localhost:64631/JavaScript/jquery-1.11.3.min.js
(正确)
为了解决这个问题,他建议我在我的web.config中添加一个名为BaseURL
的密钥,并创建一个名为GetBaseURL
的C#方法,它返回它们在java脚本中使用的键值(第二个脚本)。现在它完美无缺! :)