У меня есть проект с 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