ASP.net MVC 和 jQueryUI 的困境
Posted
技术标签:
【中文标题】ASP.net MVC 和 jQueryUI 的困境【英文标题】:ASP.net MVC and jQueryUI dilemma 【发布时间】:2010-09-17 21:22:27 【问题描述】:我刚刚将一个项目移至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 引用,那么 ThemeRoller 图像就在那里。所有的css都在Content folder
中,所有的脚本都在Scripts folder
中。
我知道这是一个愚蠢的路径问题,但它让我抽搐。
我错过了什么?
更新
我尝试了第一个答案无济于事,请阅读评论了解详情。再次感谢观看的人。
第二种方法也不起作用。我很困惑。
另一个更新
对脚本使用Url.Content
标签确实可以让脚本正常运行。使用样式表的常规标记将所有样式添加到页面上,但与 ThemeRoller 相关的所有样式除外。
jquery-ui-themeroller.css
文件位于 Content 文件夹中,当我检查元素时,css 存在。我怀疑问题出在从这个css文件到themeroller的images文件夹的映射中,该文件夹也在Content文件夹中。此文件中的图片链接指定为:background: url(images/foo.gif)
此文件中的链接需要更改吗?
【问题讨论】:
【参考方案1】:除非您的所有视图都处于同一级别,否则您需要使用
使用绝对路径,例如 /Scripts/jquery-1.2.6.js 或者更好,解析一个虚拟路径比如Url.Content() http://jvance.com/media/2008/10/18/UrlContent5.media
【讨论】:
我尝试了使用 Url.Content 标记的选项,它改变了一件事:现在所有内容都未注释,图像显示但 jQueryUI 无法正常工作。【参考方案2】:这有帮助吗?
http://forums.asp.net/p/1334947/2690469.aspx
不一致的原因是 很简单,虽然我承认不是 很容易弄清楚!当你有一个
标签 runat="server">,ASP.NET 将处理 标签并检测 URL 和 解决它们相对于 应用程序的根。当你有一个 页面上的
【讨论】:
它帮助我更好地理解问题并更接近,但解决方案仍然超出我的掌握。 原来问题是从 ThemeRoller 下载的主题不能开箱即用。感谢您的解释。【参考方案3】:您需要更改 jquery-ui-themeroller.css 中的链接以指向图像的当前位置。
如中,您需要更新 css 文件正在查找的图像的路径。
background: url(images/foo.gif)
从路径中删除“图像/”,使其看起来像:
background: url(foo.gif)
因为您的 css 和图像都在内容文件夹中。
【讨论】:
【参考方案4】: 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"));
【讨论】:
以上是关于ASP.net MVC 和 jQueryUI 的困境的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net MVC 中的 JQuery UI 日期选择器
ASP.NET Core 5 MVC:在模态窗口之前验证表单