【问题标题】:Referring to JavaScript files in Razor views to get JavaScript Intellisense在 Razor 视图中引用 JavaScript 文件以获取 JavaScript Intellisense
【发布时间】:2011-05-08 09:12:37
【问题描述】:

Visual Studio 提供 JavaScript 智能感知。看到您在母版页中引用 JavaScript 文件(例如 jQuery 文件),然后在应用程序的任何视图中提供语句完成,这已经足够聪明了。但是,这似乎不适用于 Razor。有没有办法让它与 Razor 一起工作? ASPX 视图引擎提供了这个技巧,例如:<% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>

【问题讨论】:

    标签: javascript razor javascript-intellisense


    【解决方案1】:

    你应该可以做这样的事情:

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

    这样,当应用程序运行时,代码永远不会运行,但 VS 不会知道 if (false),因此它会解析 &lt;script&gt; 标签并允许 Intellisense 将其考虑在内。在 Razor 文件中使用 Razor cmets 的问题是 VS 会识别它们并完全忽略其中的任何内容。例如,这不起作用:

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

    【讨论】:

    • 不是最干净的解决方法,但可能是我们目前可以拥有的最好的解决方法。谢谢!
    • 使用csproj文件中的true属性时,上述方法会导致大量“Warning Unreachable code detected”。
    【解决方案2】:

    为了防止编译器对无法访问的代码发出警告,您可以进一步用 pragma 包装它:

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

    【讨论】:

    • 现在我称之为 hack
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2013-05-23
    • 2011-03-27
    • 1970-01-01
    • 2012-03-29
    • 2016-05-23
    相关资源
    最近更新 更多