我正在尝试制作一个组件,该组件将显示从原始日期时间开始经过的时间。
据我了解,您可以重写某些生命周期方法,以便在初始化组件时运行某些代码。但是我收到一个奇怪的编译器错误。
这里是有问题的组件Timer.cshtml
。
<div>
<span>It has been @Elapsed.ToString() since @Origin.ToString().</span>
</div>
@functions {
[Parameter]
DateTime Origin { get; set; }
TimeSpan Elapsed { get; set; }
protected override void OnInit()
{
this.Elapsed = new TimeSpan(DateTime.UtcNow.Ticks - Origin.Ticks);
}
}
dotnet run
显示奇怪的编译器错误。 obj\Debug\netstandard2.0\Pages\Timer.g.cs(34,139): error CS1003: Syntax error, ',' expected [C:\path_to_app\BlazorApp1\BlazorApp1.csproj]
VSCode中也存在此错误。听起来您必须创建一个支持类来覆盖生命周期方法。真的吗?有没有方法可以覆盖“剃刀”页面中的生命周期挂钩?
答案 0 :(得分:0)
以下问题的答案:“是否可以在没有支持类的情况下覆盖Razor页面?”是的。