问题1:可不可以传递多个值?
可以。多层级联,级联中又加级联,多层结构。如下:
<CascadingValue Value="@MyNameTest1" Name="test1">
<CascadingValue Value="@MyNameTest2" Name="test2">
<FetchData></FetchData>
</CascadingValue>
</CascadingValue>
为了区分不同的级联值,需要给CascadingParameter指定Name字符串,如下:
[CascadingParameter(Name="test1")]
public string Test1{set;get;} = "";
[CascadingParameter(Name="test2")]
public string Test2{set;get;} = "";
问题2:如果有多层传递,可以获取到根参数吗?
可以。代码不好演示,伪代码大致结构如下:
<Index>
<FetchData>
<Counter></Counter>
</FetchData>
</Index>
Counter能引用到Index吗?
可以,测试如下:
@page "/counter"
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@Test1
@code {
[CascadingParameter(Name="test1")]
public string Test1{set;get;} = "";
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/964728b4dd3749b7421f8e0253fea28d.png)