是否有办法根据用户选择改变Blazor EditForm组件上的模型?



我有一个名为Client的类和两个从它继承的类ClientCompany和ClientPerson,我有一个blazor EditForm来添加编辑客户端,并根据用户选择的客户端类型(Company或Person),我想将表单和控件绑定到相应的类及其属性。

我想在同一个表单上这样做,因为父类Client有很多字段,但ClientCompany和ClientPerson只有几个,所以如果我为每个类创建两个不同的blazor组件,我将重复代码。

所以我想知道是否有一种方法来改变EditForm及其控件的绑定模型取决于一个单选按钮的选择,所以如果用户选择Person将EditForm绑定到ClientPerson,但如果用户选择Company将EditForm绑定到ClientCompany。

我正在使用。net 5, Blazor Web Assembly和实体框架。

<EditForm EditContext="@EditContext" OnValidSubmit="HandleValidSubmit">
</EditForm>
@code
{
private EditContext EditContext;
private Client client= new Client() { };
protected override void OnInitialized()
{
EditContext = new EditContext(client);
base.OnInitialized();
}
}

可以看到,可以用Client类的实例初始化EditContext对象,当用户做出选择时,可以用EditContext的新实例初始化EditContext实例,如下所示:

ClientCompany client= new ClientCompany () { };
EditContext = new EditContext(client);

最新更新