6

我刚刚将一个项目移到了ASP.net MVC框架的 beta 版本,我遇到的唯一问题是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

4 回答 4

4

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

  • 使用绝对路径,例如 /Scripts/jquery-1.2.6.js
  • 或者更好的是,解析一个虚拟路径,例如 <%= Url.Content("~/Scripts/jquery-1.2.6.js") %>

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

于 2008-10-18T04:16:44.013 回答
2

这有帮助吗?

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

不一致的原因很简单,虽然我承认这并不容易弄清楚!当 <head runat="server"> 中有 <link> 标记时,ASP.NET 将处理 <link> 标记并检测 URL 并相对于应用程序的根进行解析。如果页面上有 <script> 标记(没有 runat="server"),那么 ASP.NET 将不理会它,因为它只是普通的旧 HTML。

使用 Url.Content() 是我用来解决这个问题的方法,因为它会相对于应用程序根进行解析,就像 <link> 标记一样。

于 2008-10-18T12:54:50.397 回答
0

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

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

background: url(images/foo.gif)

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

background: url(foo.gif)

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

于 2008-10-18T18:37:00.110 回答
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"));
于 2009-03-17T21:21:03.847 回答