在mvc app中设置jquery的路径问题

时间:2008-11-24 04:50:07

标签: asp.net asp.net-mvc

我在mvc app中设置jquery的路径时遇到问题。在我的母版页中,我声明了脚本,jquery在我的应用程序的根目录下工作。当我导航到我的应用程序中的内容视图页面时,jquery无法正确加载。我是否还需要在内容页面中设置路径或以不同方式声明路径?

<script src="Views/Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>

4 个答案:

答案 0 :(得分:11)

虽然使用绝对路径适用于某些安装,但在子目录中安装时会遇到问题。更安全的解决方案是使用Url.Content,它将始终正确地解析路径:

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>

答案 1 :(得分:2)

母版页上的src是相对的,不适用于子页面。如果将路径声明为绝对路径(例如“/Views/Scripts/jquery-1.2.6.min.js”),它应该可以工作;

答案 2 :(得分:1)

我建议使用辅助方法

public static class Helper
{
    private static string ScriptsRoot = "~/views/scripts/";

    public static string ScriptUrl (string scriptFile)
    {
        return VirtualPathUtility.ToAbsolute (ScriptsRoot + scriptFile);
    }
}

然后像这样引用你的脚本:

<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>

答案 3 :(得分:1)

当您在母版页上时,可以使用

<script src="<%=ResolveUrl(~/Views/Scripts/jquery-1.2.6.min.js) %>" type="text/javascript"></script>

ResolveUrl是从Control继承的方法。 因此,从Control派生的MasterPage可以使用它。