如何在 c# blazor 网页中更新实时日期时间

Posted

技术标签:

【中文标题】如何在 c# blazor 网页中更新实时日期时间【英文标题】:How Can i update the live date time in c# blazor web page 【发布时间】:2021-06-16 11:06:09 【问题描述】:

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

有关于这个问题的帮助吗?

【问题讨论】:

没有。时间来自服务器正在运行的机器。因此,您需要更改机器时间,并且您可能没有从远程客户端运行的权限。 我认为 Sandeep 只是想显示日期/时间。 在页面加载时设置时间。它没有实时更新。我需要刷新页面时间才能查看时间。 Blazor wasm 或服务器 服务器@yasseros 【参考方案1】:

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

@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();
    

【讨论】:

Henk,你知道Timer是运行在服务端还是客户端? 无论 Blazor 代码在哪里运行。如果您想要 Blazor Server 应用程序中的本地(客户端)时间,您可能需要一些额外的逻辑。 @HenkHolterman 我很想知道你在 blazor wasm 中解决这个问题的方法 在 Blazor Wasm 上,您不需要任何解决方案 - 它应该已经是当地时间。服务器可能处于离线状态,而你的时钟仍在滴答作响。

以上是关于如何在 c# blazor 网页中更新实时日期时间的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mysql 数据库中的 nodejs 和 socket.io 在网页上获得实时更新?

如何从数据库 Blazor C# 中获取 Id 数据

C#:如何在 Blazor Wasm 托管中将动态 Razor 组件从服务器发送到客户端?

介绍这个库:C# Blazor中显示Markdown文件

从 JavaScript 渲染 Blazor 组件 - 如何在组件渲染后从 JavaScript 更新 Blazor 组件参数

如何在 Blazor Web Assembly 中将 c# 变量传递给 javascript