Я хотел бы знать, как можно вызвать компонент с @typeparam
, который поступает с URL
Как это уже обсуждалось в C# Blazor: Как использовать @typeparam в коде позади? (с обходным решением) , я создал компонент, как это сделал Роджер Вулф в своем решении.
Raozor.cs с использованием Microsoft.AspNetCore.Components;
namespace BlazorApp1.Components
{
public partial class MyCustomComponent<T> : ComponentBase
{
[Parameter]
public string Label { get; set; }
}
}
Часть Razor:
@namespace BlazorApp1.Components
@typeparam T
<label>@($"{Label}. Provided type is {typeof(T).Name.ToUpper()}")</label>
Страница Index.razor
@page "/{typeName}"
@using BlazorApp1.Components
<MyCustomComponent T="@TypeName" Label="Custom component label" />
@code
{
[Parameter]
public string TypeName {get; set;}
}
Итак, Строка, где я пытаюсь установить Тип по свойство строки, которое я получаю в ошибке компилятора. (Я предполагаю, что внутренняя функция typeof () определит тип для класса компонента.) Он будет компилироваться, только если я использую фиксированный кодированный тип. :
e.g.: <MyCustomComponent T="long" Label="Custom component label" />
Что я хочу сделать, это извлечь параметр типа из URL. Есть идеи, чтобы получить эту работу?