2008-10-18 44 views
6

我刚刚将一个项目移动到了ASP.net MVC框架的测试版,我遇到的唯一问题是jQueryjQueryUIASP.net MVC和jQueryUI困境

这里的交易:

Site.Master是下面的脚本引用:

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui.js" type="text/javascript"></script> 

,并利用这些,我对其中一个视图的accordian UI作品完美,但有一个问题:来自ThemeRoller的图像不包括在页面中。如果我注释掉jQuery引用,ThemeRoller图像就在那里。所有的CSS都在Content folder中,所有的脚本都在Scripts folder中。

我知道这是一个愚蠢的路径问题,但它让我抽搐。

我错过了什么?

更新

我尝试的第一个答案无济于事,阅读详细的注释。再次感谢那些正在查看的人。

第二种方法也不起作用。我很困惑。

另一个更新

使用Url.Content标签脚本确实允许脚本正常运行。除了与ThemeRoller相关的所有内容外,对样式表使用常规标记可将所有样式放到页面上。

jquery-ui-themeroller.css文件位于Content文件夹中,当我检查某个元素时,该css存在。我怀疑问题在于从该css文件映射到位于Content文件夹中的themeroller的images文件夹。此文件中的图像链接指定为:background: url(images/foo.gif)

此文件中的链接是否需要更改?

回答

2

执行此帮助?

http://forums.asp.net/p/1334947/2690469.aspx

的原因inconstistency是 很简单,虽然我承认它不是 很容易弄清楚!当你有一个内部的头部< RUNAT =“服务器” >一个 <链接>标签,ASP.NET将处理 的<链接>标记和检测URL和 解决它们相对于 应用程序的根。如果页面上有 <脚本>标记(没有 runat =“server”),那么ASP.NET将 保留,因为它只是简单的 旧的HTML。

使用Url.Content()是我 会用它来解决这个问题,因为它会 获得相对于应用程序根解决的办法, 就像<链接>标签。

+0

它帮助我更好地理解问题并更加接近,但解决方案仍然不在我的掌握之中。 – KevDog 2008-10-18 14:06:49

4

除非你所有的观点都在同一水平,你需要要么使用

  • 使用绝对路径,如/Scripts/jquery-1.2.6.js
  • 甚至更​​好,解决虚拟路径如<%= Url.Content( “〜/脚本/ jquery的-1.2.6.js的”)%>

Url.Content() http://jvance.com/media/2008/10/18/UrlContent5.media

+0

我尝试使用Url.Content标签,其中改变一件事的选项: 现在一切未加注释,图像显示,但jQueryUI的不工作。 – KevDog 2008-10-18 04:40:15

0

您需要更改jquery-ui-themeroller.css中的链接以指向图像的当前位置。

如上所述,您需要更新css文件正在查找的图像的路径。

background: url(images/foo.gif) 

从路径删除“图像/”,使它看起来像:

background: url(foo.gif) 

既是你的CSS和图像的内容文件夹。

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"JQuery", ResolveUrl("~/js/jquery.min.js")); 
     Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "JQueryUI", ResolveUrl("~/js/jquery-ui.custom.min.js"));