Как заставить работать jQuery intellisense, если вы внедрили расширение Url Helper для получения URL-адресов ваших файлов сценариев? - PullRequest
3 голосов
/ 21 апреля 2009

Я реализовал расширения Url Helper, которые Кази Манзур предложил в своем руководстве по лучшим практикам MVC здесь

Метод расширения My Url Helper для получения файла сценария:

public const string ScriptDir = "~/Assets/Scripts";
public static string Script(this UrlHelper helper, string fileName)
{
    return helper.Content(string.Format("{0}/{1}", ScriptDir, fileName));
}

И на своей главной странице я просто добавляю скрипт jQuery на мою страницу следующим образом:

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

Как заставить работать intellisense для jQuery, поскольку Visual Studio во время разработки не знает, что jquery-1.3.2.min.js включен в главную страницу?

Обходной путь, который я в настоящее время включаю в мою мастер-страницу следующим кодом (hardcode my -vsdoc location script). Это может быть лучшим решением на данный момент:

<% if (false) { %> <script type="text/javascript" src="~/Assets/Scripts/jquery-1.3.2-vsdoc.js"></script> <% } %>

Ответы [ 3 ]

9 голосов
/ 21 апреля 2009

Вам не нужно включать часть -vsdoc в имя файла. Файл vsdoc intellisense будет выбран автоматически. Тем не менее, этот базовый обходной путь - единственный способ, с помощью которого я смог заставить intellisense работать с jquery и методом для пути к сценарию. Я также должен поместить разметку обходного пути в любые элементы управления или представления .ascx, которые не ссылаются на главную страницу, для которой я хочу intellisense.

Обходной путь, который я использую, такой же, как ваш, за исключением "-vsdoc":

<% if (false) { %>
    <script src="../../Content/scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<% } %>

Тем не менее, обходной путь отменяет цель использования метода пути, поскольку вам все равно придется жестко кодировать путь. Немного ответа - просто подтверждение того же вопроса.


Если вы включите компиляцию для представлений , приведенный выше код вызовет предупреждение о недоступном коде. Этот код, использующий директивы, не вызывает предупреждения и не будет компилироваться в представление:

<% #if (false) %>
    <script src="../../Content/scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<% #endif %>
3 голосов
/ 21 апреля 2009

Simple:

/// <reference path="jquery-1.3.2-vsdoc.js" />

Или как там подходящее имя.

В качестве дополнительного бонуса вы можете использовать следующее в качестве справочного материала для VS Intellisense с Javascript.

1 голос
/ 21 апреля 2009

Он предлагает сопоставить эти URL-адреса с помощью вспомогательного метода, чтобы избежать дублирования. Однако в случае главной страницы у вас уже есть центральное место для этой информации (то есть вы не повторяетесь).

Итак, в этом случае я бы предположил, что в этих обстоятельствах это не только не нужно, но и активно вредно. Intellisense гораздо важнее в этом случае, чем рабское соответствие на 100%.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...