Подключение jQuery IntelliSense в частичных представлениях ASP.NET MVC

Тема на самом деле тривиальная, но сам я долго мучился пока не нашёл решение. Когда мы пишем клиентский код на JavaScript, то в файлах кода .js подключаем IntelliSense следующим образом.
/// <reference path="../jquery-1.7.1.min.js" />
/// <reference path="../jquery.validate.min.
Всё прекрасно работает, и проблем нет. А если же мы хотим использовать тот же самый способ в частиных представлениях (partial views), то данный метод уже не сработает. Что же делать?  Можно подключить скрипты следующим образом.
<div id="framedv">
  <div class="frmcnt">
    <iframe src="" height="100%" width="100%" frameborder="0"></iframe>
  </div>
  <div id="frminsert"></div>
  <div id="frmclose"></div>
</div>
<script src="../../../../Scripts/jquery-1.7.1-vsdoc.js" type="text/javascript"></script>
<script src="../../../../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
  $(document).ready(function () {
    $(".inpfk").click(function () {
      var url = $(this).find("input").val();
      $(".frmcnt iframe").attr("src", url);
      $("body").append($("#framedv"));
      var position = $(".inpfk").offset();
      position.top = parseInt(position.top) + 16;
      position.left = parseInt(position.left) - 100;
      $("#framedv").attr("style", "visibility: visible");
      $("#framedv").css({ top: position.top + "px", left: position.left + "px" });
    });
    $("#frmclose").click(function () {
      $("#framedv").attr("style", "visibility: hidden");
    });
    $("#frminsert").click(function () {
      var temp = $("iframe").contents().find("#keyvalue").val();
      if (temp == "")
        alert("Значение не выбрано.");
      else
        $("#inp5").val(temp);
    });
  });
</script>
Всё будет работать, но так как в шаблонном файле эти скрипты подключены, то выходит, что они подключаются дважды или даже ещё более раз, если используется несколько частичных представлений на странице. А это прямой путь к ошибкам. Тогда можно их удалять перед каждым запуском, что и делал я, пока мне это очень сильно не надоело. А решение было очень простое.
@if (false)
{
  <script src="../../../../Scripts/jquery-1.7.1-vsdoc.js" type="text/javascript"></script>
  <script src="../../../../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
}
Вот таким нехитрым образом можно подключить IntelliSense для использования jQuery в Razor и не опасаться повторного подключения библиотеки. Метод работает, и строку каждый раз не нужно будет записывать и удалять.


Антон
03.07.2015 7:49
Добрый день. не понятен смысл блок кода "if", условие же никогда не выполнится и на частичном представлении скрипты подключены не будут!? Отсюда вытекает что jquery код работать после обновления частичного представления не будет. Сам столкнулся с проблемой использования javascript в частичных представлениях подскажите как решить проблему. Заранее спасибо
03.07.2015 11:22
Цитата
Добрый день. не понятен смысл блок кода "if", условие же никогда не выполнится и на частичном представлении скрипты подключены не будут!?
- да не будут. Они будут видимы для студии, но для приложения включены не будут.