Загрузка файла JS с использованием Url.Content в MVC 3 - PullRequest
2 голосов
/ 20 декабря 2011

Я пытаюсь загрузить javascript с использованием следующего в MVC 3, но скрипт не загружается:

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

Если я загружаю с использованием следующего, тогда это работает:

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

В чем может быть проблема

Ответы [ 3 ]

2 голосов
/ 20 декабря 2011

При загрузке сценариев я склонен использовать вместо этого пользовательский помощник.

Код ниже делает это и имеет дополнительный логический параметр, который можно использовать, когда сценарий не является локальным для вашего приложения, и принапример, 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 голос
/ 12 декабря 2013

Сначала вы должны добавить сборку (пространство имен)

System.Web.Optimization

, а затем просто отрендерить любой скрипт, подобный этому.

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

не забудьте сначала включить пространство имен

Using System.Web.Optimization;
0 голосов
/ 20 декабря 2011

Примечание <%: отображает строку HTMLString, а вы этого не хотите. <%= отображает строку. Ниже должно работать.

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

подробности см. В этом вопросе ASP.NET <% =%> против <%:%>

...