是否有插入具有多个级联值的.NET Blazor组件的简写方法



我正在处理一个.NET Blazor项目,需要将多个级联值传递到通用子窗体。以下代码应用了多个[CCascadingValue]属性,在传递一些值时效果良好,但在传递更多值时会变得有点麻烦。是否有通过单个[CastingValue]属性传递多个值的简写?如果没有,是否有更紧凑的方法来传递更多的值?(顺便说一句——我确实理解,除了给每个属性命名之外,还有其他选择(。

<CascadingValue Value="@Value1" Name = "Name1" > 
<CascadingValue Value="@Value2" Name = "Name2" > 
<CascadingValue Value="@Value3" Name = "Name3" > 
<FooComponent />
</CascadingValue>
</CascadingValue>
</CascadingValue>

您可以创建一个包含所有要传递的值的对象,并像这样使用

<CascadingValue Value="@AnyObject" IsFixed="true">
</CascadingValue>

在Surinder的回答的基础上,这里有一个扩展示例,其中包含用于获取对象的子代码。

<CascadingValue Value="@anyObject" IsFixed="True" Name="AnyName">
<ComponentName />
</CascadingValue>
@code {        
private ObjectType anyObject = new();
}

儿童

@code {
[CascadingParameter(Name = "AnyName")]
private ObjectType anyObject { get; set; }
}

最新更新