提问人:macaoidh 提问时间:10/16/2023 更新时间:10/16/2023 访问量:32
Blazor 应用 Razor 页面 ComponentBase 了解
Blazor app Razor pages ComponentBase understanding
问:
.net 的新手,我被 Blazor/Razor/etc 扔进了深渊。
我正在对现有应用程序进行更改,并在这些应用程序中构建一些新页面,我试图在短时间内了解所有基础知识。
我正在尝试了解@inherits的工作原理,我已经从Microsoft文档中复制了示例。
我知道剃刀页面继承了 BlazorRocksBase 类,它将有权访问该类中的属性和方法。但是,如果实例化确实发生,那么实例化发生在哪里呢?是否有新的 BlazorRocksBase 正在后台创建?或者,剃刀页面在使用 @inherits 时是否实例化 BlazorRocksBase?
我希望这是有道理的。与 JS 相比,我发现很难找到很多通俗易懂的 .net 信息。
@page "/blazor-rocks"
@inherits BlazorRocksBase
<h1>@BlazorRocksText</h1>
using Microsoft.AspNetCore.Components;
namespace BlazorSample;
public class BlazorRocksBase : ComponentBase
{
public string BlazorRocksText { get; set; } =
"Blazor rocks the browser!";
}
试图为自己找到答案,但运气不佳
答:
0赞
MrC aka Shaun Curtis
10/16/2023
#1
首先,Razor 页面被编译为 C# 类,默认情况下,这些类继承自 。 指示编译器将生成的类继承设置为提供的类型。请注意,类必须实现 .Componentbase
@inherits
IComponent
组件是由渲染器创建和管理的,而不是由编码人员创建和管理的。
您可以将其添加到项目文件中,以查看文件夹中发出的类文件。/obj/Debug/netx/generated
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
</PropertyGroup>
</Project>
请参阅[我的]这篇文章,其中详细介绍了组件。https://www.codeproject.com/Articles/5277618/A-Dive-into-Blazor-Components
评论
0赞
macaoidh
10/25/2023
当然,剃刀页面继承自 BlazorRocksBase,因此可以访问其属性和方法。我不确定为什么第一次没有点击,但你的第一句话就很明显了。谢谢。
评论