Как передать общий параметр через NavLink в Blazor?

#c# #generics #blazor

#c# #общие #blazor

Вопрос:

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

 @page "/topicgrid"
@typeparam TDataModel
<h1>Title</h1>
 

Класс, лежащий в основе кода, выглядит следующим образом:

 public partial class TopicGrid<TDataModel> : ComponentBase
{
}
 

Я могу использовать этот компонент следующим образом:

 <TopicGrid TDataModel="SomeTopicModel" /> // SomeTopicModel is a class
 

Однако мне нужно создать этот компонент через компонент NavLink. NavLink хочет знать только маршрут компонента, ничего больше. Как я мог этого добиться?

 <NavLink class="nav-link" href="topicgrid">
    Topic Grid
</NavLink>
 

Ответ №1:

Вы можете вложить свой общий компонент в другой компонент, задачей которого является инициализация параметров, которые вам нужно передать.

 @page “/topicgrid”
<TopicGrid .../>