Blazor服务器端Console.WriteLine无法正常工作

时间:2019-09-02 02:39:59

标签: blazor

我想知道我是否丢失了一些东西,但只是为服务器端Blazor启动了一个基本模板,发现Console.WriteLine无法正常工作。就是说,我看不到Chrome控制台中的文本。

@code{

    protected override async Task OnInitializedAsync() 
    {
        System.Console.WriteLine("oninit");
    }
}

5 个答案:

答案 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中的“输出”选项卡
  • 在“显示输出来源:”下拉列表中,选择您的应用,而不是“调试”
  • 现在,这将使您能够查看任何Console.Writeline语句,这些语句现在将出现在Visual Studio的“输出”窗口中

(这已在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);
    }
}