c# - 将 WebAssembly Blazor 转换为托管的
问题描述
我正在测试 Blazor.net,但由于 WebAssembly (.net Core 3.1) 中缺乏调试而立即失败了。
是否有一种快速简便的方法可以将我的 WebAssembly 应用程序重新配置为托管应用程序,以便我可以在开发示例时调试 .net 代码?
解决方案
我刚刚看了这个视频,它展示了一个很好的技巧:
- 将 2 个项目添加到您的解决方案,ServerApp 和 WasmApp。
- 在您的 ServerApp 中,添加对 WasmApp 的引用
在 ServerApp._Host.cshtml 中,将此行更改为使用
WasmApp.App
:<component type="typeof(WasmApp.App)" render-mode="ServerPrerendered" />
现在从 ServerApp 项目中删除所有 .razor 文件和生成的死代码。
您现在可以在 WasmApp 中开发所有 blazor 页面,也可以使用 ServerApp 运行它们。唯一的重复是在添加 css 或 js 文件时维护_Host.cshtml
和index.html
并行。
视频 als 显示了一个附加功能来显示正在运行的内容:
@using System.Runtime.InteropServices
<p>Env: @Environment</p>
@code{
string Environment = RuntimeInformation.IsOSPlatform(OSPlatform.Create("BROWSER")) // was "WEBASSEMBLY"
? "WebAssembly"
: "Server";
}
把它放在你的主页或 NavMenu 或其他东西上。
推荐阅读
- java - java println会影响数学方程吗?
- angular - 在 Angular 5 中离开使用它的页面后,Google Maps API 出现问题
- php - 使用 null 合并运算符时如何键入 cast?
- javascript - 打字稿:无法访问函数中的公共变量
- c# - 如何在 WPF 中的多显示器显示器上定位窗口?
- boolean-logic - 重新排列布尔方程
- javascript - particle.js 没有正确加载到页面上
- node.js - Kubernetes - 增加流星/节点内存限制
- r - 在r中导入没有一致模式的txt文件
- firebase - Nodemcu 和 Firebase 连接错误