Toda vez que tento entrar na página de artistas aparece esse erro. E o problema não é com o banco, porque executando só a api funciona normal
Toda vez que tento entrar na página de artistas aparece esse erro. E o problema não é com o banco, porque executando só a api funciona normal
Olá Samuel, boa tarde!
Vamos tentar resolver esse problema juntos. Pelo que você descreveu e com base nas imagens fornecidas, parece que há um erro não tratado na sua aplicação Blazor quando você tenta acessar a página de artistas. Aqui estão algumas coisas que você pode verificar:
Verifique a API:
Verifique o método GetArtistasAsync
:
OnInitializedAsync
, você está chamando artistas = await artistaAPI.GetArtistasAsync();
. Certifique-se de que o método GetArtistasAsync
está retornando uma lista de ArtistaResponse
corretamente e que não está lançando nenhuma exceção.Tratamento de Erros:
OnInitializedAsync
para capturar e logar qualquer exceção que possa estar ocorrendo.@code {
private ICollection<ArtistaResponse>? artistas;
protected override async Task OnInitializedAsync()
{
try
{
artistas = await artistaAPI.GetArtistasAsync();
}
catch (Exception ex)
{
// Log the exception (use a logging framework or simply output to console for now)
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
artistas
não é nulo:if(artistas is not null)
, mas não está tratando o caso onde artistas
pode ser nulo. Adicione um else para exibir uma mensagem de erro amigável.<h3>Artistas</h3>
@if(artistas is not null)
{
foreach (var artista in artistas)
{
<p>@artista.Nome</p>
}
}
else
{
<p>Não foi possível carregar a lista de artistas.</p>
}
Verifique o arquivo Imports.razor
:
Console do Navegador:
Seguindo essas dicas, você deve conseguir identificar e corrigir o problema. Espero ter ajudado e bons estudos!
De um F12 e veja se é erro por bloqueio dos Cors. Se for...
Adicione o seguinte codigo no Program.cs da sua ScreenSound.API
builder.Services.AddCors(); //.... app.UseCors(x => x.AllowAnyMethod().AllowAnyHeader().SetIsOriginAllowed(origin => true).AllowCredentials());
vou abrir uma nova duvida.
Olá bom dia, segui abaixo imagem da possivel solução:
no appsetting.json, na pasta wwwroot, do projeto Blazor, tem ser passado a url e a porta onde a API esta executando, eu me confundir a acabei colocando a *url *e a porta onde o Blazor esta sendo executado.
segui abaixo imagem Program.cs do projeto Blazor.
Segui abaixo appsettings.json na pasta wwwroot do projeto Blazor
Boa tarde Mateus,
Perfeito, obrigado por compartilhar conosco.