Правильный способ ссылки на Javascript в ASP.NET MVC?

Каков правильный способ ссылки на Javascript в ASP.NET MVC? Использование чего-то типа.. /../Scripts/Myscript.js, похоже, отлично подходит для маршрутов, которые являются традиционными {controller}/{action}/{id}, но более хрупкими для чего-либо более или менее сложного. Большая озабоченность вызывает то, что рациональная абсолютная ссылка (/Scripts/Myscript.js) разбивает Intellisense в Visual Studio.

Как вы справляетесь с этим?

EDIT: Это, очевидно, очень старый вопрос на данный момент, но я редактирую, чтобы упомянуть, что в MVC4 все, что вам нужно, это следующее:

src="~/Scripts/Whatever.js"

Для Razor достаточно понять, что вы имеете в виду, используя корневой путь.

Ответы

Ответ 1

<script src="<%= Url.Content("~/Scripts/Myscript.js") %>" type="text/javascript"></script>

Ответ 2

Если кто-то еще найдет этот ответ, который использует MVC Razor, вот синтаксис для этого:

<script type="text/javascript" src="@Url.Content("/Scripts/MyScript.js")"></script>

Ответ 3

Я также ссылаюсь на js так же, как CMerat:

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

Если вам нужна Intellisense для jquery, вы можете найти инструкции по настройке здесь. Насколько я знаю, вы не можете получить Intellisense для любого настраиваемого js файла, с которым вы ссылаетесь - вам нужно сначала создать файл Intellisense для него.

Ответ 5

Я создал свои собственные расширения HtmlHelper, которые выглядят так:

public static string MEScriptBlock(this HtmlHelper html, string path, string releasePath)
{
#if DEBUG
#else
    if (!string.IsNullOrEmpty(releasePath))
        path = releasePath;
#endif

    return string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>\r\n",
                         path);
}

Если intellisense - это то, что вам нужно, вы можете обмануть VS, думая, что загружен JS файл... Например.

<% if (false)
   { %>
    <script src="../../Scripts/Myscript.js" type="text/javascript"></script>
<% } %>

HTHS, Чарльз