我正在使用Visual Studio 2010 / ASP.net MVC 3以及Razor视图引擎。我使用了Internet Application模板创建了一个新项目。我需要做什么才能让智能感知(Intellisense)正常工作?
我正在使用Visual Studio 2010 / ASP.net MVC 3以及Razor视图引擎。我使用了Internet Application模板创建了一个新项目。我需要做什么才能让智能感知(Intellisense)正常工作?
Views/Shared/_layout.cshtml
(或.vbhtml
)文件的标签中添加一行代码:@if (false) { <script src="../../Scripts/jquery-1.4.4-vsdoc.js" type="text/javascript"></script> }
这将引用Intellisense文件到Visual Studio,但在运行时不会引用它。
请记住,相对于放置此代码的文件,指向vsdoc文件。任何类似~
/Url.Content()
或任何其他运行时代码都不会被VS IntelliSense看到。
这正是为什么if (false)
可以隐藏脚本引用从而使其不出现在运行时(if
块未执行),但不会对VS IntelliSense造成影响(并提供另一个引用使用Url.Content()
或类似方式到.min.js文件)。
@Url.Content(...)
的评论。我不明白的是,if(false){...}
的意义是什么?那似乎毫无意义,但它确实起作用!你能解释一下吗? - Mohayeminif(false) {...}
部分是为了防止代码在运行时执行,以便不会在运行时引用大型的、有很多注释的 -vsdoc.js 文件(你需要有一个单独的对 min.js 文件的引用,以便像通常一样执行和引用)。使用 Url.Content()
/~
或任何在运行时评估的代码都将阻止 VS 检测到 -vsdoc.js 文件以进行智能感知。我已经在答案本身中添加了这些注释。感谢您提出这个问题。 - Meligyintellisense.js
文件,我还需要添加 jQuery 文件。 - Vitor Canova将jquery文件拖动到希望启用智能感知的js文件中,就像这样:
然后它就会像这样工作:
<reference>
语法会起作用(.js)。 - Meligy @if (false)
{
<script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui.min.js" type="text/javascript"></script>
}
应该在每个需要智能感知的视图中添加此项。这将启用智能感知,但不会在运行时添加第二个引用。
在使用_layout.cshtml的Vs2012中,@Mohamed Meligy的解决方案对于使用该布局文件的视图似乎对我没有帮助。也许我错过了什么?
然而,这里的解决方案似乎是推荐的方法,非常有效,现在我可以智能感知所有添加到_references.js中的引用文件的所有引用,并且不需要运行时false技巧位,可以使视图完全清晰无误。