在服务器端 Blazor 应用程序上,我发现
Console.WriteLine
不起作用。为什么我在 Chrome 控制台中看不到文字?
@code{
protected override async Task OnInitializedAsync()
{
System.Console.WriteLine("oninit");
}
}
我必须做这样的事情才能使文本显示在浏览器控制台中:
@inject IJSRuntime jsRuntime
@code {
protected override async Task OnInitializedAsync()
{
await jsRuntime.InvokeAsync<string>("console.log", "hello world");
}
}
当您在 IIS Express 下运行它时,确实没有输出。
您可以使用“运行”按钮上的下拉菜单按名称而不是 IIS 选择应用程序。 然后您将在控制台窗口中看到输出。
或使用
System.Diagnostics.Debug.Print()
在输出窗口中查看它。
我的意思是我看不到 Chrome 控制台中的文本。
这只发生在客户端 (WebAssembly) Blazor。
当您通过 IIS Express 或作为应用程序运行时,您可以在输出窗口中看到 Console.WriteLine 输出到您的应用程序 ASP.NET Core Web 服务器。 来自 IIS Express IIS Express 输出配置的图像
作为您的应用程序 运行应用程序的图像 应用程序输出配置的图像
@page "/sample-log"
@inject IJSRuntime _js
<!-- html -->
@code {
protected async override Task OnInitializedAsync()
{
await Log("Initialized"); // test
}
async ValueTask Log(string text)
{
await _js.InvokeVoidAsync("console.log", text);
}
}