Параметр обработчика событий компонента Blazor .NET 6 Не работает в родительском обработчике

#c# #asp.net-core #blazor #blazor-server-side

Вопрос:

Я использую .NET 6 и visual Studio 2022, у меня есть компонент с обработчиком событий, как показано ниже

 [Parameter] public EventCallbacklt;DIMCustomergt; OnSelectedCustomer { get; set; }  

и в методе этого компонента вызовите это событие, как показано ниже

 async Task Select(DIMCustomer customer)  {  db.Entry(customer).State = EntityState.Detached;  await OnSelectedCustomer.InvokeAsync(customer);  await CloseModal();  }  

в родительском я использую этот компонент следующим образом :

 lt;CustomerSelectorModalComponent @ref=DOMCustomerSelector OnSelectedCustomer=OnCustSelected /gt;  

и этот метод :

 void OnCustSelected(DIMCustomer customer)  {  if (CustomerModalMode == customerMode.Owner)  {   dIMCheque.OwnerCustomer = customer;  dIMCheque.ShOwner = customer.ID;  }  else if (CustomerModalMode == customerMode.Benefit)  {  dIMCheque.BeneficiaryCustomer = customer;  dIMCheque.ShBeneficiary = customer.ID;  }  }  

но этот метод больше не срабатывает !???

на этом изображении показан обработчик метода, добавленный для fire, но почему он не запускается ??? введите описание изображения здесь

компонент «CustomerSelectorModalComponent» Отлично работает в другом компоненте, но не работает в этом родительском… почему????

Я Нашел Проблему, Но не могу ее исправить

я хочу, чтобы мой компонент и обработчик событий были похожи на изображение ниже

введите описание изображения здесь

но обработчик событий Blazor выглядит так, как показано ниже

введите описание изображения здесь

как я могу это исправить … двухкомпонентный клиент придерживается одного обработчика событий в компоненте депозита

это моя бритва в компоненте депозита

 lt;CustomerComponent @ref=DOMCustomerComponent OnSelectedCustomer=OnCustomerSelectedgt;lt;/CustomerComponentgt;  

это моя бритва в Модальном компоненте

 lt;DepositComponent @ref=DOMDeposit OnDepositSelected=OnSelectDeposit /gt; lt;CustomerComponent @ref=DOMCustomer OnSelectedCustomer=OnCustSelected /gt;  

Ответ №1:

Моя проблема в идентификаторе элемента … у компонента html-элемента есть идентификатор, и некоторые работают с JavaScript через элемент ID … у меня есть два одинаковых компонента, которые вызывают дублирование элемента идентификатора и прерывают работу … я генерирую динамический идентификатор с идентификатором GUID, и проблема решена …