渲染片段时如何将类型参数传递给Body()?

问题描述 投票:0回答:1

我有一个带有 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 但不允许类型,只允许对象。

非常感谢任何帮助。 预先感谢您。

c# .net-core blazor render type-parameter
1个回答
0
投票

我假设

UserBase
是从
ComponentBase
派生的组件,并且您希望限制渲染的所有内容以实现
UserBase

如果不重写大量 Blazor 渲染器代码,就无法完成您尝试做的事情。

A Component 被定义为实现

IComponent
的类。
ComponentBase
只是一种实现。

A RenderFragment 是一个委托。 图案是:

void Method(RenderTreeBuilder builder)

阅读本文以了解有关组件的更多信息 - 深入了解 Blazor 组件

© www.soinside.com 2019 - 2024. All rights reserved.