ASP.net MVC和jQueryUI困境

问题描述 投票:6回答:4

我刚刚将一个项目移动到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)

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

jquery asp.net-mvc jquery-ui path jquery-ui-theme
4个回答
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()是我用来解决这个问题的方法,因为它会相对于app root解析,就像<link>标记一样。


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


0
投票

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

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

background: url(images/foo.gif)

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

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"));
© www.soinside.com 2019 - 2024. All rights reserved.