我想知道如何使用来自URL的@typeparam调用组件。
正如在C# Blazor: How to use @typeparam in Code behind? (with workaround)中已经讨论的那样,我像Roger Wolf在他的解决方案中所做的那样构建了一个组件。 Raozor.cs using Microsoft.AspNetCore.Components;
我想要做的是从URL中获取type参数。有什么办法可以实现这个功能吗?
正如在C# Blazor: How to use @typeparam in Code behind? (with workaround)中已经讨论的那样,我像Roger Wolf在他的解决方案中所做的那样构建了一个组件。 Raozor.cs using 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中获取type参数。有什么办法可以实现这个功能吗?