Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Inserir um componente de outro

Por exemplo, definimos um componente que renderiza o HTML inicial e os link de CSS.

E se por exemplo, na View Index.cshtml eu tivesse que usar um RenderBody() e criar um Layout page que carrega essa nova View. Eu consigo fazer isso? O ASP.NET MVC consegue diferenciar qual Layout ele deve renderizar?

4 respostas

Leonardo, bom dia.

O método RenderBody() precisa estar dentro de alguma layout page, não em uma view específica.

Se quiser alterar o layout a renderizar você precisa mudar a propriedade Layout indicando o caminho do arquivo de layout.

Por exemplo:

Numa view Index.cshtml:

@{
  Layout = "~/Views/Shared/_LayoutEmColunas.cshtml";
}

Numa view Detalhe.cshtml:

@{
  Layout = "~/Views/Shared/_LayoutFormulario.cshtml";
}

Espero que tenha ajudado.

Obrigado pela ajuda Daniel. Então por exemplo, não posso ter uma chamada encadeada de componentes de View? Teria que ter outra View com o conteúdo específico?

solução!

Fala, Leonardo, bom dia.

Sim, para cada conteúdo específico você vai usar uma view correspondente. Contudo se determinadas partes de uma página HTML são comuns (por exemplo cabeçalho, rodapé, menu de navegação), elas podem ser extraídas/isoladas em views com propósitos específicos. Essas views são chamadas de parciais e vinculadas através do método @RenderPartial("<nome da view parcial>")

Abração!

Era exatamente isso que eu queria saber. Muito obrigado pela atenção Daniel. Tenha um bom dia :)