为什么Visual Studio无法折叠包含Razor语法的Javascript函数?

问题描述 投票:15回答:1

我在Visual Studio中的.cshtml文件如下所示:

请注意createTabStrip如何崩溃,但createTeachersTab不能。为什么是这样?

编辑:它似乎与剃刀语法有关。我取出所有的@标志,createTeachersTab能够崩溃。

javascript razor visual-studio-2013
1个回答
5
投票

扩展我的评论。

您通常不希望在Razor视图中定义函数。相反,定义它们并从外部JavaScript文件导入它们。如果您需要在JavaScript中使用C#中的信息,则可以在Razor partial中使用JavaScript创建全局配置对象,然后呈现该部分。

function_lib.js

function createTeachersTab() {
    ...
        read: {
            url: config.teachers.newTabUrl
        }
    ...
}

查看/共享/ _JavaScriptConfig.cshtml

这将在HTML文档的<head>中呈现为部分。

<script type="text/javascript">
    var config = {
        teachers: {
            newTabURL: '@Url.Action("Teachers", "Users")'
        }
    };
</script>

然后在JavaScript的其他任何地方,您可以通过全局config JavaScript变量引用这些设置。

config.teachers.newTabUrl

编辑:我也完全认识到这并没有解决Visual Studio中的代码崩溃问题,这似乎是他们最终的解析错误。真正的解决方案是“不要在Razor视图中定义JavaScript函数”,因为这被认为是不好的做法。


2
投票

您也可以突出显示该块并按ctrl + m,ctrl + h折叠该块

© www.soinside.com 2019 - 2024. All rights reserved.