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

时间:2014-07-02 15:27:16

标签: javascript razor visual-studio-2013

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

enter image description here

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

编辑:它似乎与剃刀语法有关。我取出了所有@个符号,createTeachersTab能够崩溃。

2 个答案:

答案 0 :(得分:6)

扩展我的评论。

您通常不希望在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函数&#34;因为这被认为是不好的做法。

答案 1 :(得分:1)

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