2010-04-10 50 views
0

我是jquery的新手,正在尝试使用UI插件。出于某种原因,下面的代码不起作用,从某种意义上讲,它不会显示标签,它只是一堆文本。但是,当我复制页面源代码并将其粘贴到html页面并放入views文件夹中时,一切看起来都很棒,所以我假设所有的js路径都很好。有任何想法吗?在ASP.NET MVC中使用Jquery UI选项卡控件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Details</title> 
    <link href="../../Scripts/themes/base/ui.all.css" rel="stylesheet" type="text/css" /> 
    <script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
    <script src="../../Scripts/ui/ui.core.js" type="text/javascript"></script> 
    <script src="../../Scripts/ui/ui.tabs.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#tabs").tabs(); 
     });  
</script> 
</head> 

<body> 
    <div> 

    <div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">Text 1</a></li> 
     <li><a href="#tabs-2">Text 2</a></li> 
     <li><a href="#tabs-3">Text 3</a></li> 
    </ul> 
    <div id="tabs-1"> 
      <div>tab1 content - adsfadfadsf</div>  
    </div> 
    <div id="tabs-2"> 
     <div>tab 2 content -adfadfadf </div>  
    </div> 
    <div id="tabs-3"> 
     <div>tab 3 content -adfadfadfadf</div>  
    </div> 
    </div> 
    </div> 
</body> 
</html> 

回答

2

首先始终是相对路径的“〜/”符号,这将避免您在部署到虚拟文件夹时出现问题。 你也可以写一个帮助自己封装的:

<script src="<%= Url.Content("~/Scripts/script.js") %>"></script> 

你有MvcContrib非常好的帮手,如

Html.Script("~/Script/js-debug.js", "~/Script/js-prod.js"); 

同样的问题将与你的CSS出现:

Html.Css("~/Content/style.css"); 

我在我的最新项目中使用它,我不能在那里看到编程错误,所以我认为它在脚本路径中有效地解决了问题。

而且它非常容易使用Firebug,检查什么的JS错误你得到,如果脚本都加载,等...

最后,它可能更好地把所有的js代码在最后你的html页面(在标签后面,这不是必须的,但是有助于加载页面的速度更快,因为在浏览器解析页面后脚本将被下载)

+1

我会放在所谓的“脚本”主视图的一个部分在页面的底部,那么无论你在哪里实现你的观点,即部分,您可以注入脚本引用将始终呈现在底部。 我已经使用了相同的技术来处理页眉和CSS引用。 – 2011-12-09 15:38:57

+1

您是否至少获得了挖掘像这样的旧帖子的徽章?虽然好评。 :) – 2011-12-09 16:01:54

1

我看不出你的代码有什么问题这些脚本文件的路径在ASP.NET MVC View中,在使用url时使用html助手是一种很好的做法:

<script src="<%= Url.Content("~/Scripts/jquery-1.3.2.js") %>"></script> 
0

所以我承担所有的JS路径都不错

你的假设是错误的大部分。如果/ Action呈现并使用/Views/Action/Index.aspx视图,则动作的相对路径与直接显示/Views/Action/Index.html不同。

所以使用类似

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