我有一个带有 UserBase 的项目和几个具有不同用户类型的应用程序,这些应用程序继承自 userBase。我假装对所有剃刀视图使用不同的用户,而不是用户库。为此,我通过视图通过以下方式传递类型:
@typeparam UserType 其中 UserType:类,IUserBase
我遇到的问题是,当我需要将此类型传递给我想要渲染的 @Body 时,在本例中,在 MainLayout.razor 中:
@typeparam UserType where UserType : class, IUserBase
<PageTitle>ApplicationName</PageTitle>
<AuthorizeView>
<div class='layout-wrapper layout-content-navbar'>
<div class='layout-container'>
<div class="layout-page">
<div class="content-wrapper">
<div class='container-xxl flex-grow-1 container-p-y' id="HispaCoreBlazor_MainLayout_ContentWrapper">
**@Body **
</div>
<div class="content-backdrop fade"></div>
</div>
</div>
</div>
<div class="layout-overlay layout-menu-toggle"></div>
<div class="drag-target"></div>
</div>
</AuthorizeView>
我一直在尝试使用 CascadeParameter 但不允许类型,只允许对象。
非常感谢任何帮助。 预先感谢您。
我假设
UserBase
是从 ComponentBase
派生的组件,并且您希望限制渲染的所有内容以实现 UserBase
。
如果不重写大量 Blazor 渲染器代码,就无法完成您尝试做的事情。
A Component 被定义为实现
IComponent
的类。 ComponentBase
只是一种实现。
A RenderFragment 是一个委托。 图案是:
void Method(RenderTreeBuilder builder)
阅读本文以了解有关组件的更多信息 - 深入了解 Blazor 组件