【发布时间】:2020-06-09 02:53:57
【问题描述】:
在 Blazor .razor 文件中,您可以使用@typeparam MyType 来使用通用参数。
例如:
MyComponent.razor
@typeparam MyType
<SomeHtml />
@code
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
所以你可以调用:
<MyComponent MyType="MyTypeABC" MyList="@MyData.MyList" />
但我更喜欢后面的代码 (razor.cs),如何在 razor.cs 文件中使用像 @typeparam MyType 这样的类型的参数?
我目前的解决方法是:
MyComponent.razor
@inherits MyComponentCode<MyType>
@typeparam MyType
MyComponent.razor.cs
public class MyComponentCode<MyType> : ComponentBase
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
我想念[TypeParameter] 之类的东西,但也许有更好的解决方案,有什么想法吗?或者也许这是一个关于“如何在代码背后使用 razor @statements”的一般问题。
2020 年 2 月 27 日更新:
根据 Roger Wolf 的建议(见下文),更好的方法:
MyComponent.razor
@typeparam MyType
MyComponent.razor.cs
public partial class MyComponent<MyType>
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
致电
<MyComponent MyType="MyTypeABC" />
【问题讨论】: