我有最新的Visual Studio 2019 16.5.4企业版。
我刚刚从模板(使用默认设置)创建了一个ASP.NetCore3.1MVC应用程序。
我还在主页的Index.cshtml中添加了一些JavaScript代码:
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
@section Scripts {
<script>
function GetJSON_Simple() {
var resp = [];
return resp;
}
debugger;
var simpleData = GetJSON_Simple();
</script>
}
而且我无法调试JavaScript代码(GetJSON_Simple
函数体内部或var simpleData = GetJSON_Simple()
上的断点从未被命中)。
显示this article(**使用Razor调试动态文件中的JavaScript(ASP.NET)**部分):
**放置调试器;语句:**这将导致动态脚本在创建时停止执行并立即开始调试。
P.S.我已经有了工具-〉选项-〉调试-〉常规,并打开了启用ASP.NET(Chrome和IE)的JavaScript调试复选框,当然我正在调试中编译。
我的测试项目是attached
2条答案
按热度按时间wbgh16ku1#
如何在ASP.NetCore3.1MVC应用程序(Razor视图- *.cshtml)中调试JavaScript?
事实上,这已经是一个众所周知的问题。**我们无法调试Net Core剃刀页面下的js代码,只能调试单独的js或ts文件中的代码。**请参见this link。
解决方案
为了解决这个问题,我建议你可以创建一个新的js文件,名为
test.js
,然后在剃刀页面引用它,然后你可以在调试它的时候进入js代码。**1)**创建一个名为
test.js
的文件,并将js代码迁移到其中:**2)**更改为在cshtml文件中使用该文件:
3)****清理您的项目,然后重新构建您的项目并调试它,您将遇到Js代码。
f1tvaqid2#
另一种方法是通过 sourceURL 注解直接在javascript代码中显式定义脚本的源Map名称。
该块中的脚本将以您指定的值显示在Chrome中,然后您可以像普通的.js文件一样查看和调试。
如果您不想重构cshtml文件中嵌入了javascript的现有代码库,或者不想重构任何动态加载了javascript的代码库,这一点尤其有用。
示例
你可以在这里看到一个内置javascript runner的例子。只要点击“运行代码片段”,然后在你的页面源代码中搜索“blahblah”。你应该会看到这样的结果: