Я новичок на страницах Blazor. Я пытаюсь создать страницу для редактирования данных клиентов. У объекта customer есть список телефонных номеров (строка), потому что у большинства есть стационарный и мобильный телефон. Я не могу найти способ поместить это в форму редактирования. Я пытался использовать foreach l oop, но это не может с этим связано. Я также попытался использовать локальную копию в l oop и привязать к ней. Это работает, но я не могу получить изменения после нажатия кнопки отправки. Что я делаю неправильно ? Как правильно это сделать? Кажется, я не могу найти учебник, который охватывает это.
Я заново создал свою страницу до минимума, который делает то же самое:
Это мой класс Клиента
public class Customer
{
public string Name { get; set; }
// arbitrary extra fields
public List<string> phoneNumber { get; set; }
}
}
public class CustomerService
{
Customer jeff;
public CustomerService()
{
jeff = new Customer
{
Name = "Jeff",
phoneNumber = new List<string> { "123456", "654321" },
};
}
public Customer getCustomer()
{
return jeff;
}
public void setCustomer(Customer cust)
{
jeff = cust;
}
}
И моя страница
<EditForm Model="@customer" OnSubmit="@submitChanges">
<InputText id="name" @bind-Value="@customer.Name" /><br/>
<!-- How do i link the multiple phonenumbers-->
@foreach(string phone in customer.phoneNumber)
{
//this does not compile
//<InputText @bind-Value="@phone"/>
//this compiles but i can't find how to acces the data afterward ???
string temp = phone;
<InputText @bind-Value="@temp"/>
}
@for(int i=0;i<customer.phoneNumber.Count();i++)
{
//this compiles but chrashed at page load
// <InputText @bind-Value="@customer.phoneNumer[i]"/>
}
<button type="submit">submit</button>
</EditForm>
@code {
Customer customer;
protected override void OnInitialized()
{
customer = _data.getCustomer();
}
private void submitChanges()
{
_data.setCustomer(customer);
}
}