首页 > 解决方案 > 在 Blazor 组件的嵌套参数中传递值

问题描述

如何在嵌套参数中传递值。假设我有一个名为 mycomponent 的自定义控件

我的组件.Razor

<label>
    
</label>
@code
{
   [Parameter]
    public TestBase Test { get; set; } = new TestBase();
}

测试基

public class TestBase
{
    [Parameter]
    public string Cap { get; set; }
    [Parameter]
    public string Cap5 { get; set; }="hai"


    [Parameter]
    public string Cap2 { get; set; }


    [Parameter]
    public string Cap3 { get; set; }

}

我的页面

<mycomponent Test.Cap="my value">

</mycomponent>

Test.Cap="我的价值"不起作用

在嵌套参数中传递值的正确方法是什么

标签: razorparametersnestedblazor

解决方案


您应该传递TestBaseinto MyComponent,而不是尝试设置TestBasein的值MyComponentTest为in设置默认值MyComponent仅涵盖未提供 Parameter 的情况。

<mycomponent Test="MyTest">

</mycomponent>

@code {

  private TestBase MyTest = new TestBase() {Cap = "Test Value"};

  SomeButtonClick Event() 
  {
    MyTest.Value = "Another Value";
  }
}

我建议您阅读有关组件的信息 -这是一个好的开始MS Docs

更新

你的问题的直接答案是:不,你不能做你想做的事。


推荐阅读