ASP.net MVC和jQueryUI困境

时间:2008-10-18 03:56:15

标签: jquery asp.net-mvc jquery-ui path jquery-ui-theme

我刚将项目移至ASP.net MVC框架的测试版,我唯一遇到的问题是jQueryjQueryUI

这是交易:

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文件映射到themeroller的images文件夹,该文件夹也在Content文件夹中。此文件中的图像链接指定为:background: url(images/foo.gif)

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

4 个答案:

答案 0 :(得分:4)

除非您的所有观点都处于同一级别,否则您需要使用

  • 使用绝对路径,例如/Scripts/jquery-1.2.6.js
  • 甚至更好,解析虚拟路径,例如&lt;%= Url.Content(“〜/ Scripts / jquery-1.2.6.js”)%&gt;

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

答案 1 :(得分:2)

这有帮助吗?

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

  

不稳定的原因是   很简单,虽然我承认不是   容易搞清楚!当你有一个   &LT; LINK&GT;在&lt; head中标记   runat =“server”&gt ;, ASP.NET将处理   &lt; link&gt;标记和检测URL和   解决他们相对于   应用程序的根目录。当你有一个   &LT;脚本&GT;页面上的标签(没有   runat =“server”)然后ASP.NET会   不管怎样,因为它很简单   旧的HTML。

     

使用Url.Content()是我的方法   因为它会用来解决这个问题   得到相对于app root的解析,   就像&lt; link&gt;一样标签

答案 2 :(得分:0)

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

在中,您需要更新css文件正在查找的图像的路径。

background: url(images/foo.gif)

从路径中删除'images /',使其看起来像:

background: url(foo.gif)

因为你的css和图像都在内容文件夹中。

答案 3 :(得分: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"));