Criei um projeto ASP.NET Core MVC (.net core 8). Adicionei um ViewComponent fictício e cada vez que executo o aplicativo, recebo o seguinte erro:
An unhandled exception occurred while processing the request.
InvalidOperationException: The view 'Components/Dummy/Default' was not found. The following locations were searched:
/Views/Home/Components/Dummy/Default.cshtml
/Views/Shared/Components/Dummy/Default.cshtml
Verifiquei a documentação da MicroSoft e em fóruns como StackOverflow, mas nada está funcionando.
qualquer ajuda seria muito bem vinda.
Aqui está a visualização do explorador de soluções:
Aqui está a classe ViewComponent:
public class DummyViewComponent : ViewComponent
{
public DummyViewComponent()
{
}
public async Task<IViewComponentResult> InvokeAsync()
{
await Task.Delay(TimeSpan.FromMilliseconds(1));
return View();
}
}
Aqui está o CSHTML:
<div>
Dummy view component!
</div>
E é aqui que ele está sendo invocado na página inicial (índice):
@{
ViewData["Title"] = "Overview";
}
@section Styles {
}
@await Component.InvokeAsync("Dummy")
@section Scripts {
}
Como você pode ver, isso é bastante simples - realmente não consigo ver onde está o problema.
Muito obrigado antecipadamente.
O que você fez não parece um erro. Aqui estão algumas possíveis causas e soluções que você pode tentar:
A compilação em tempo de execução não está habilitada por padrão, instale o
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
pacote e modifique o Program.cs:Tente especificar o caminho da visualização:
Verifique se há algum problema com a compilação de suas visualizações. Se você não conseguir solucionar isso, poderá remover todos os outros códigos HTML, exceto os componentes de visualização, e verificar se funciona ou não.
Clique com o botão direito do mouse no arquivo (
Views/Shared/Components/Dummy/Default.cshtml
) no Visual Studio, selecioneProperties
e verifique seBuild Action
está definido como Content .Tente clicar com o botão direito no projeto, escolha
Clean
e depois escolhaRebuild
. Após fazer as duas abordagens, execute o aplicativo novamente.Verifique se você escreve algum middleware ou filtro personalizado que possa influenciar os componentes da visualização.