如何在浏览器&xB4;通过Blazor WebAssembly的s控制台?

如何在浏览器&xB4;通过Blazor WebAssembly的s控制台?,blazor,blazor-client-side,asp.net-blazor,Blazor,Blazor Client Side,Asp.net Blazor,在JavaScript中,我们可以使用以下调用将调试输出写入浏览器控制台: console.log("My debug output."); Google Chrome中的输出: 如何通过Blazor WebAssembly将组件中的“我的调试输出”记录到浏览器控制台 <button @onclick="ClickEvent">OK</button> @code { private void ClickEvent() { // co

在JavaScript中,我们可以使用以下调用将调试输出写入浏览器控制台:

console.log("My debug output.");
Google Chrome中的输出:

如何通过Blazor WebAssembly将组件中的“我的调试输出”记录到浏览器控制台

<button @onclick="ClickEvent">OK</button>

@code {

    private void ClickEvent()
    {
        // console.log("My debug output.");
    }
}
OK
@代码{
私有void ClickEvent()
{
//log(“我的调试输出”);
}
}

我通常会这样做:

Console.WriteLine("My debug output.");
public class JsConsole
{
   private readonly IJSRuntime JsRuntime;
   public JsConsole(IJSRuntime jSRuntime)
   {
       this.JsRuntime = jSRuntime;
   }

   public async Task LogAsync(string message)
   {
       await this.JsRuntime.InvokeVoidAsync("console.log", message);
   }
}
如果是Blazor WebAssembly,我会在浏览器控制台中看到消息

如果是Blazor服务器应用程序,我会在输出窗口中看到消息。(在输出窗口中,有一个下拉列表-选择:“ASP.NET核心Web服务器”)


希望这有帮助…

您可以使用一个
ILogger
,它可以让您在控制台中写入警告或错误:

@使用Microsoft.Extensions.Logging
@注入ILogger\u记录器
...
@代码{
受保护的覆盖无效OnInitialized()
{
_logger.LogWarning(“警告”);
_logger.LogError(“错误”);
}
}

只要把一个变量装入板条箱,如果你的事情正常,就可以更改它。。比如说

<p>@message</p>
<button onclck=@Send></button>
@code {
   private string message = "Don`t work";

   public void Send()
{
  message = "working"
}
}
@消息

@代码{ 私有字符串message=“不工作”; 公共无效发送() { message=“正在工作” } }

我希望它能有所帮助……

如果您使用Blazor服务器(而不是WebAssembly),则只能使用JSInterop向浏览器控制台写入内容。我编写了一个包装器类,如下所示:

Console.WriteLine("My debug output.");
public class JsConsole
{
   private readonly IJSRuntime JsRuntime;
   public JsConsole(IJSRuntime jSRuntime)
   {
       this.JsRuntime = jSRuntime;
   }

   public async Task LogAsync(string message)
   {
       await this.JsRuntime.InvokeVoidAsync("console.log", message);
   }
}
然后在页面中,您可以插入JsConsole并使用它:

await this.JsConsole.Log(message); //Will show in the browser console.

我认为您可以在c#中使用
Console.WriteLine(“我的调试输出”)资本比我想象的要频繁。是Console.WriteLine(“我的调试输出”);跨浏览器兼容?适用于Edge、Chrome和FF。谢谢。什么是输入窗口?ILogger: