Estou usando _viewstart.cshtml para atribuir automaticamente o mesmo Layout do Razor aos meus pontos de vista.
É um arquivo simples na raiz da minha pasta Views que se parece com isso:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Isso é mais SECO do que adicionar a diretiva @Layout a todas as visualizações.
No entanto, isso representa um problema para o Razor parcial. visualizações , porque elas executam o conteúdo de _viewstart.cshtml e, portanto, atribuem incorretamente a si mesmas um layout, o que as torna, um, não mais parciais.
Aqui está um projeto hipotético, mostrando o arquivo _viewstart.cshtml, o arquivo _layout.shtml compartilhado e uma exibição parcial ("AnonBar.cshtml").
Atualmente, a maneira que eu estou contornando isso é adicionando a seguinte linha a todas as visualizações parciais:
@{
Layout = "";
}
Esta parece ser a maneira errada de denotar uma visão como parcial no Razor. (Observe que, diferentemente do mecanismo de exibição de formulários da Web, a extensão do arquivo é a mesma para visualizações parciais.)
Outras opções que eu considerei, mas que são ainda piores:
- Colocar todas as visualizações parciais em uma pasta comum, para que eles possam compartilhar um _viewstart.cshtml comum. Isso interrompe a convenção de exibições na mesma pasta que seu controlador.
- Não está usando vistas parciais.
Isso ainda está sendo desenvolvido pela equipe do mecanismo de exibição do Razor, ou estou perdendo um conceito fundamental?