代码之家  ›  专栏  ›  技术社区  ›  KevDog

ASP.NET MVC和JQueryUI困境

  •  6
  • KevDog  · 技术社区  · 16 年前

    我刚把一个项目转移到 ASP.net MVC 框架和我唯一的问题是 jQuery 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引用进行注释,那么会出现主题滚轮图像。所有的CSS都在 Content folder 所有的脚本都在 Scripts folder .

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

    我错过了什么?

    更新

    我尝试了第一个答案,但没用,详细阅读评论。再次感谢那些观看的人。

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

    另一个更新

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

    这个 jquery-ui-themeroller.css 文件在内容文件夹中,当我检查一个元素时,CSS就出现了。我怀疑问题出在从这个CSS文件映射到ThemeRoller的Images文件夹中,该文件夹也在Content文件夹中。此文件中指定的图像链接为: background: url(images/foo.gif)

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

    4 回复  |  直到 7 年前
        1
  •  2
  •   Chris Farmer Marcelo Cantos    16 年前

    这有帮助吗?

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

    不确定的原因是 很简单,尽管我承认这不是 很容易搞清楚!当你拥有 <Link>在头部内标记 runat=“server”>,ASP.NET将处理 <link>标记并检测URL和 相对于 应用程序的根目录。当你拥有 <script>标记在页面上(不带 runat=“server”)则ASP.NET将 别管它,因为它很简单 旧的HTML。

    使用url.content()是方法i 会用来解决这个问题,因为它会 相对于应用程序根目录得到解决, 就像<link>标签一样。

        2
  •  4
  •   JarrettV    16 年前

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

    • 使用绝对路径,如/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

        3
  •  0
  •   Adhip Gupta Miguel Angelo    16 年前

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

    与中一样,您需要更新CSS文件正在查找的图像的路径。

    background: url(images/foo.gif)
    

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

    background: url(foo.gif)
    

    因为你的CSS和图片都在内容文件夹中。

        4
  •  0
  •   chris    16 年前
        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"));
    
    推荐文章