Blazor 服务器端 Console.WriteLine 不起作用

Ali*_*liK 8 blazor

我想知道我是否遗漏了什么,但刚刚启动了服务器端 Blazor 的基本模板,发现 Console.WriteLine 不起作用。我的意思是我在 Chrome 控制台中看不到文本。

@code{

    protected override async Task OnInitializedAsync() 
    {
        System.Console.WriteLine("oninit");
    }
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*nia 22

我必须做这样的事情才能在浏览器控制台中显示文本:

@inject IJSRuntime jsRuntime

@code {

    protected override async Task OnInitializedAsync()
    {
        await jsRuntime.InvokeAsync<string>("console.log", "hello world");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 对于使用服务器端托管模型的用户:您可以使用“OnAfterRenderAsync”而不是“OnInitializedAsync”进行测试。 (2认同)

Hen*_*man 11

当您在 IIS Express 下运行它时,确实没有输出。

您可以使用“运行”按钮上的下拉菜单按名称而不是 IIS 选择您的应用程序。然后您将在控制台窗口中看到您的输出。

或用于System.Diagnostics.Debug.Print()在输出窗口中查看它。

我的意思是我在 Chrome 控制台中看不到文本。

这只发生在客户端 (WebAssembly) Blazor 中。

  • 或者,您可以在 VS 输出窗口的“显示输出”下拉列表中选择您的项目来查看控制台消息...如果您使用的是 IIS Express 并希望查看 Console.WriteLine 消息。 (3认同)

小智 9

当您通过 IIS Express 或作为应用程序运行时,您可以在输出窗口中看到 Console.WriteLine 输出到您的应用程序 ASP.NET Core Web 服务器。来自 IIS Express IIS Express 输出配置的图像

作为通过应用程序 输出配置运行的应用程序映像

如果您想写入 Web 控制台,您需要在客户端 Blazor 中工作。这在 github 讨论页面上进行了讨论