我想知道我是否丢失了一些东西,但只是为服务器端Blazor启动了一个基本模板,发现Console.WriteLine无法正常工作。就是说,我看不到Chrome控制台中的文本。
@code{
protected override async Task OnInitializedAsync()
{
System.Console.WriteLine("oninit");
}
}
答案 0 :(得分:3)
当您通过IIS Express运行或作为应用程序运行时,您可以在输出窗口中看到Console.WriteLine输出到应用程序ASP.NET Core Web Server。 从IIS Express image of IIS Express Output Configuration
作为您的应用程序 image of running though your application image of your application Output Configuration
如果要写入Web控制台,则需要在Client Blazor中工作。 on github discussion page
对此进行了讨论答案 1 :(得分:2)
我必须执行以下操作才能在浏览器控制台中显示文本:
@inject IJSRuntime jsRuntime
@code {
protected override async Task OnInitializedAsync()
{
await jsRuntime.InvokeAsync<string>("console.log", "hello world");
}
}
答案 2 :(得分:1)
当您在IIS Express上运行它时,确实没有输出。
您可以使用“运行”按钮上的下拉列表通过名称而不是IIS选择应用程序。然后,您将在控制台窗口中看到输出。
或使用System.Diagnostics.Debug.Print()
在“输出”窗口中查看它。
我的意思是我在Chrome控制台中看不到文本。
这仅在客户端(WebAssembly)Blazor中发生。
答案 3 :(得分:1)
如何查看Blazor应用程序的“控制台输出”(即Console.WriteLine语句):
(这已在Visual Studio 2019中进行了测试)
答案 4 :(得分:0)
在浏览器开发者工具控制台中写入消息。在 Blazor 服务器上有用。在 Blazor WASM 中,我们可以使用 Console.WriteLine() 或相同的策略。
@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);
}
}