使用MVC 3中的Url.Content加载JS文件

时间:2011-12-19 20:32:13

标签: javascript asp.net-mvc asp.net-mvc-3 load

我正在尝试使用MVC 3中的以下内容加载javascript,但脚本无法加载:

 <script src="<%: Url.Content("~/Content........

如果我使用以下内容加载,那么它可以工作:

<script src="../../Content......

可能是什么问题

3 个答案:

答案 0 :(得分:2)

加载脚本时,我倾向于使用自定义帮助程序。

下面的代码执行此操作,并且有一个额外的布尔参数,可以在脚本不是您的应用程序本地时使用,例如在CDN上使用。

    public static MvcHtmlString Script(this HtmlHelper helper, string src, bool local = true)
    {
        if (local) {
            src = VirtualPathUtility.ToAbsolute("~/Scripts/" + src);
        }
        TagBuilder builder = new TagBuilder("script");
        builder.MergeAttribute("src", src);
        builder.MergeAttribute("type", "text/javascript");
        return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));

    }

然后,您可以在视图中调用帮助程序,如下所示:

<%: Html.Script("jquery.validate.min.js") %>

或:

<%: Html.Script("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.js", false) %>

答案 1 :(得分:1)

您应首先添加程序集(命名空间)

System.Web.Optimization

然后简单地渲染这样的任何脚本。

@Scripts.Render("~/Content/Scripts/test.js")

不要忘记首先包含名称空间

Using System.Web.Optimization;

答案 2 :(得分:0)

注意<%:呈现HTMLString,但您不希望这样。 <%=呈现一个字符串。 下面应该有用。

<script src="<%= Url.Content("~/Content........

请参阅此问题了解详情ASP.NET <%= %> vs <%: %>