如何在 razor 页面中调试嵌入式代码?



我正在查看带有 asp.net 托管的 Blazor 客户端。所以我正在浏览模板项目,Visual Studio 预览版似乎不支持 razor 页面中的断点,更具体地说是代码块:

@code {
private WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await Http.GetJsonAsync<WeatherForecast[]>("WeatherForecast"); //breakpoint here
}
}

是否有解决方法或我缺少什么? 谢谢!

Blazor Webassembly 调试目前只能使用 Chrome 浏览器调试代理。这些步骤在 Blazor 文档中进行了介绍:

  1. 在调试配置中运行 Blazor WebAssembly 应用。
  2. --configuration Debug选项传递给 dotnet run 命令:dotnet run --configuration Debug
  3. 在浏览器中访问应用程序。
  4. 将键盘焦点放在应用上,而不是开发人员工具面板上。启动调试时,可以关闭开发人员工具面板。
  5. 选择以下特定于 Blazor 的键盘快捷方式:
  • Shift+Alt+D在 Windows/Linux 上
  • 在 macOS 上Shift+Cmd+D
  1. 按照屏幕上列出的步骤在启用远程调试的情况下重新启动浏览器。
  2. 再次选择以下特定于 Blazor 的键盘快捷方式以启动调试会话:
  • Shift+Alt+D在 Windows/Linux 上
  • 在 macOS 上Shift+Cmd+D

"在 Visual Studio 中按 F5 操作"调试体验尚未准备就绪。Daniel Roth 在 .NET 社区站立视频中演示了其中的一些内容。基本上,Visual studio可以附加到浏览器的调试代理。目前,在预览版本中,您必须手动执行一系列步骤,而将来,这些步骤应由Visual Studio简化并完成。

更新 三月 26, 2020

Microsoft发布了WASM Blazor的新预览版,并改进了对Visual studio中调试的支持。详情请见此处。

最新更新