Saltar al contenido

Servidor Blazor – Patrón ‘Código subyacente’: OnInitializedAsync(): no se encontró ningún método adecuado para anular

Hola, hemos encontrado la respuesta a tu búsqueda, deslízate y la obtendrás un poco más abajo.

Solución:

Su MyPage.razor.cs debe heredar de ComponentBase clase y tu Mypage.razor debe heredar de MyPage.razor.cs.

En su clase de “código subyacente” debe usar [Inject] attribute por cada servicio que está inyectando y hacerlos al menos protected propiedades para poder utilizarlas en los componentes de tu maquinilla de afeitar.

A continuación se muestra un ejemplo de una de mis aplicaciones de prueba, tenga en cuenta que esto usa .net-core 3.0, en 3.1 puede usar clases parciales.

Index.razor

@page "/"
@inherits IndexViewModel

@if (users == null)

Hang on while we are getting data...

else @foreach (var user in users)
Id Username Email FirstName LastName
@user.Id @user.Username @user.Email @user.FirstName @user.LastName

IndexViewModel.cs

public class IndexViewModel : ComponentBase, IDisposable

    #region Private Members
    private readonly CancellationTokenSource cts = new CancellationTokenSource();
    private bool disposedValue = false; // To detect redundant calls

    [Inject]
    private IToastService ToastService  get; set; 
    #endregion

    #region Protected Members
    protected List users;

    [Inject] IUsersService UsersService  get; set; 

    protected string ErrorMessage  get; set; 

    #endregion

    #region Constructor

    public IndexViewModel()
    
        users = new List();
    

    #endregion

    #region Public Methods


    #endregion

    #region Private Methods

    protected override async Task OnInitializedAsync()
    
        await GetUsers().ConfigureAwait(false);
    

    private async Task GetUsers()
    
        try
        
            await foreach (var user in UsersService.GetAllUsers(cts.Token))
            
                users.Add(user);
                StateHasChanged();
            
        
        catch (OperationCanceledException)
        
            ShowErrorMessage($" nameof(GetUsers)  was canceled at user's request.", "Canceled");
        

        catch (Exception ex)
        
            // TODO: Log the exception and filter the exception messages which are displayed to users.
            ShowErrorMessage(ex.Message);
        
    

    private void ShowErrorMessage(string message, string heading ="")
    
        //ErrorMessage = message;
        //StateHasChanged();
        ToastService.ShowError(message, heading);
    

    private void ShowSuccessMessage(string message, string heading = "")
    
        ToastService.ShowSuccess(message, heading);
    

    protected void Cancel()
    
        cts.Cancel();
    
    #endregion

    #region IDisposable Support

    protected virtual void Dispose(bool disposing)
    
        if (!disposedValue)
        
            if (disposing)
            
                cts.Dispose();
            

            disposedValue = true;
        
    

    public void Dispose()
    
        Dispose(true);
        // TODO: uncomment the following line if the finalizer is overridden above.
        // GC.SuppressFinalize(this);
    
    #endregion


Espero que esto ayude.

Encontré este error cuando usé el enfoque de clase parcial y estaba tratando de andamiar Identity. Cambié al enfoque de clase base, se resolvió.

clase parcial que estaba usando después de agregar un componente, digamos MyComponent, agregue una clase MyComponent.razor.cs para inyectar el uso de servicios

[Inject]

Servicios públicos de BuildingServices get; establecer;

para el enfoque de clase base

después de agregar un después de agregar un componente diga MyComponent, agregue una clase MyComponent.razor.cs cambie el nombre de la clase y haga que herede de componentBase MyComponentBase: ComponentBase

y colóquelo en la parte superior de MyComponent.razor

@inherits MyComponentBase

Use una palabra clave protegida para que sus métodos sean accesibles

valoraciones y reseñas

Si entiendes que ha sido provechoso este artículo, sería de mucha ayuda si lo compartieras con el resto seniors de esta forma nos ayudas a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *