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
Id
Username
Email
FirstName
LastName
@foreach (var user in users)
@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.