C# 在Blazor中切换按钮标题的正确方式是什么?

C# 在Blazor中切换按钮标题的正确方式是什么?,c#,asp.net-core,blazor,C#,Asp.net Core,Blazor,我有一个名为Earth的子组件,它有一个按钮。我们可以多次按下按钮来启动和停止地球自转 <button @onclick="Toggle"> @if (isMoving) { <text>Stop Spinning</text> } else { <text>Start Spinning</text> } </button>

我有一个名为
Earth
的子组件,它有一个按钮。我们可以多次按下按钮来启动和停止地球自转

<button @onclick="Toggle">
    @if (isMoving)
    {
        <text>Stop Spinning</text>
    }
    else
    {
        <text>Start Spinning</text>
    }
</button>

@code {
    private bool isMoving = true;

    private void Toggle()
    {
        isMoving = !isMoving;
        Console.WriteLine(DateTime.Now);
    }
}
我启动应用程序并导航到
God
。到现在为止,一直都还不错。但如果我按下按钮,我会出错:

发生了未处理的错误。重新装载

在调试它时,我被指向一个非常长的代码。这是经过修剪的版本

var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof treaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var 
问题: 在Blazor中切换按钮标题的正确方式是什么

编辑 我测试了两种浏览器:Chrome(不工作)和Edge(工作)


您可以这样做:

<button @onclick="Toggle">@Caption</button>

@code {
    private string Caption => isMoving ? "Start Spinning" : "Stop Spinning";


    private bool isMoving = true;

 
    private void Toggle()
    {
        isMoving = !isMoving;
        Console.WriteLine(DateTime.Now);
    }
}
@标题
@代码{
私有字符串标题=>isMoving?“开始旋转”:“停止旋转”;
private bool isMoving=真;
私有无效切换()
{
isMoving=!isMoving;
Console.WriteLine(DateTime.Now);
}
}

我已将此问题提交给github:
<button @onclick="Toggle">@Caption</button>

@code {
    private string Caption => isMoving ? "Start Spinning" : "Stop Spinning";


    private bool isMoving = true;

 
    private void Toggle()
    {
        isMoving = !isMoving;
        Console.WriteLine(DateTime.Now);
    }
}