2011-01-27 23 views
12

我在我的'master'cshtml文件中获取我引用的.js文件以通过'child'cshtml文件。Razor中的Javascript Intellisense查看引擎子页面

我有主文件中这样的事情,所以.js文件始终得到引用(实际上我得到的主文件中的JS智能感知):

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

然而,当我引用master.cshtml文件在'孩子'页面是这样的:

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

我没有得到任何JavaScript intellisense。我真的不希望将脚本标签放在每个子页面的顶部,有很多脚本标签和很多子页面!

回答

1

我也希望找到解决方案。

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

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

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

5

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

0

所以你不会失去推测为什么招不工作的时候,这可能是有用的:

如果使用相对路径,这似乎只工作如果路径指向同应用。只要引用的脚本文件是在同一个应用

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

上述工作:绝对路径显然适用于所有情况。

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

以上似乎无论如何工作。