我如何更新 C# blazor 网页中的实时日期时间

San*_*ddy 4 c# datetime live-update blazor-server-side

我正在尝试在 blazor 网页中设置实时日期时间。我尝试使用 Datetime.now 。它没有更新实时时间。我想在不使用 javascript 的情况下做到这一点。

关于这个问题有什么帮助吗?

Hen*_*man 19

你需要一个计时器。我能想到的最短样本:

@page "/"
@using System.Threading    
@implements IDisposable

<p>@theTime</p>

@code{

    string theTime;    
    Timer aTimer;

    protected override void OnInitialized()
    {
        aTimer = new Timer(Tick, null, 0, 1000);        
    }

    private void Tick(object _)
    {
        theTime = DateTime.Now.ToLongTimeString();
        InvokeAsync(StateHasChanged);
    }

    public void Dispose()
    {
        aTimer?.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)