Razor View Engine子页面中的Javascript Intellisense

时间:2011-01-27 22:10:53

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

我正在使用我的'master'cshtml文件中的引用.js文件来获取'child'cshtml文件。

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

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

然而,当我在'child'页面中引用master.cshtml文件时,如下所示:

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

我没有javascript intellisense。我真的不希望将脚本标记放在每个子页面的顶部,有很多脚本标记,以及很多子页面!

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

我也希望找到解决方案。

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

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

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

答案 2 :(得分:0)

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

如果使用相对路径,则仅在路径指向同一应用程序时才会起作用。绝对路径显然适用于所有情况:

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

只要引用的脚本文件位于同一个应用程序中,上述操作就会起作用。

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

以上似乎无论如何都适用。