我在Visual Studio中的.cshtml文件如下所示:
请注意createTabStrip
如何崩溃,但createTeachersTab
不能。为什么是这样?
编辑:它似乎与剃刀语法有关。我取出所有的@
标志,createTeachersTab
能够崩溃。
扩展我的评论。
您通常不希望在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函数”,因为这被认为是不好的做法。
您也可以突出显示该块并按ctrl + m,ctrl + h折叠该块