【问题标题】:Javascript Intellisense in Razor View Engine child pagesRazor View Engine 子页面中的 Javascript Intellisense
【发布时间】:2011-01-27 22:10:53
【问题描述】:

我正在寻找一种将我的“主”cshtml 文件中引用的 .js 文件传递​​给“子”cshtml 文件的方法。

我在主文件中有这样的东西,所以 .js 文件总是被引用(实际上我在主文件中得到了 js intellisense):

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

但是,当我在这样的“子”页面中引用 master.cshtml 文件时:

@{
    Layout = "~/Views/Shared/master.cshtml";
}

我没有 javascript 智能感知。我真的不想把脚本标签放在每个子页面的顶部,脚本标签很多,子页面也很多!

【问题讨论】:

    标签: javascript asp.net-mvc-3 intellisense razor


    【解决方案1】:

    Razor 编辑器现在无法推断正在使用哪些脚本文件(这是因为 Razor 布局页面是通过代码设置的,并且编辑器不执行视图页面)。不幸的是,如果您希望 JavaScript IntelliSense 在您的视图页面中工作,则必须包含这些脚本标记。

    【讨论】:

      【解决方案2】:

      我也希望能找到解决办法。

      我发现的最佳选择是始终使用外部 js 文件。在顶部创建一个类似 Master.js 的文件,使用引用路径:

      /// <reference path="../../Scripts/jquery-1.4.4.js"/>
      

      然后你就可以拥有智能感知了。您仍然需要在新的外部文件之前包含 jquery 文件。

      【讨论】:

        【解决方案3】:

        所以你不会浪费时间去弄清楚为什么这个技巧不起作用,这可能很有用:

        如果您使用相对路径,这似乎仅在路径指向同一个应用程序时才有效。绝对路径显然适用于所有情况:

        reference path="../../Scripts/jquery-1.4.4.js"
        

        只要引用的脚本文件在同一个应用程序中,上述方法就可以工作。

        reference path="http://localhost/Scripts/jquery-1.4.4.js"
        

        上述方法似乎在任何情况下都有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-28
          相关资源
          最近更新 更多