在Razor视图中引用JavaScript文件以获取JavaScript智能感知。

18

Visual Studio 提供 JavaScript 智能感知功能。它足够聪明,可以看到您在主页面中引用的 JavaScript 文件(例如 jQuery 文件),然后在应用程序的任何视图中提供语句完成功能。不过这似乎在 Razor 中无法正常工作。有没有办法让 Razor 正常使用此功能呢?例如,ASPX 视图引擎提供了以下技巧:<% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>

2个回答

28

你应该能够像这样做:

@if (false) {
<script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
}

这样一来,代码在应用程序运行时就永远不会运行,但VS不会知道 if (false),因此它将解析 <script> 标记并允许Intellisense考虑它。 在Razor文件中使用Razor注释的问题在于,VS将识别它们并完全忽略它们内部的任何内容。例如,以下内容无法工作:

@* <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> *@

不是最干净的解决方法,但可能是我们现在能得到的最好的方法。谢谢! - Konstantin
1
在 csproj 文件中使用 <MvcBuildViews>true</MvcBuildViews> 属性会导致大量的“警告:检测到无法访问的代码”警告。 - JJS

9
为了防止编译器警告不可达代码,您可以进一步使用#pragma进行包装:
@{ #pragma warning disable }
@if (false) 
{ 
    <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
} 
@{ #pragma warning restore } 

现在这才是我所说的一个黑客。 - user3163495

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接