0

我有一系列文本框来从用户那里获取电话号码和电子邮件,我将以多种形式使用它们,但具有不同的上下文,例如客户、员工、供应商,所以我想知道是否可以创建一个模板化的组件来重用代码。

<div class="form-group row">
    <label for="phone1" class="col-sm-3">Phone 1: </label>
    <InputText id="phone1" @bind-Value="@Client.phone1"></InputText>
</div>

如何更改上下文并像这样调用组件

<Phones TValue=Employee />
<Phones TValue=Client />
<Phones TValue=Supplier />

所有这些类都具有相同的电话和电子邮件属性。

谢谢

4

1 回答 1

0

我有点不清楚你为什么要这样做。如果“Employee”、“Client”和“Supplier”都派生自同一个基类(它们非常应该是),那么您根本不需要在标记中声明 TValue。只要有一个[Parameter] public BasePersonModel Person {get; set; }

然后在组件的标记中,您可以在 Person 对象上使用您想要的任何逻辑,例如:

@if (Person is Employee) { Do something }
于 2021-04-16T22:55:25.200 回答