Как передать параметр типа в Body() при рендеринге фрагмента?C#

Место общения программистов C#
Anonymous
Как передать параметр типа в Body() при рендеринге фрагмента?

Сообщение Anonymous »

У меня есть проект с UserBase и несколько приложений с разными типами пользователей, которые наследуются от userBase. Я притворяюсь, что использую разных пользователей для всех своих представлений вместо UserBase. Для этого я передаю тип через представления следующим образом:

Код: Выделить всё

@typeparam UserType where UserType: class, IUserBase
У меня проблема в том, что мне нужно передать этот тип в @Body, который я хочу отобразить, в данном случае в MainLayout.razor:

Код: Выделить всё

    @inherits LayoutComponentBase
@typeparam UserType where UserType : class, IUserBase

ApplicationName








@Body







Я определяю тип пользователя в App.razor моего MyBlazorApp1 и передаю тип пользователя в MainLayout (код выше):

Код: Выделить всё

@using MyBlazorApp1.Base







Not found

Sorry, there's nothing at this address.




@Body должен отобразить это представление:

Код: Выделить всё

@page "/IndexMyBlazorApp1"
@page "/"

@using MyBlazorApp1.Contracts
@using MyBlazorApp1.Base;
@using MyBlazorApp1.Shared;
@typeparam UserType where UserType : IUserBase, new()

@inherits IndexMyBlazorApp1

...

Если я хочу передать тип компоненту, как в случае с NavigationMenu выше, он передается правильно. Но здесь я получаю сообщение об ошибке: Невозможно создать экземпляр MyBlazorApp1.Pages.Index.IndexMyBlazorApp1r`1[UserType], поскольку Type.ContainsGenericParameters имеет значение true.
Очень признателен любая помощь.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... r-fragment

Вернуться в «C#»