“Componentes” do ASP.NET MVC
-
09-06-2019 - |
Pergunta
Existe alguma maneira de fazer com que uma parte da página seja renderizada como uma pequena subpágina, como componentes?
Por exemplo, se eu tiver um carrinho de compras em todas as minhas páginas?
Solução
Se você quiser renderizar outra ação de controlador, como um componente, para obter encapsulamento, você usa.
HTML.RenderAction
usa routedata para chegar lá, tem seus próprios dados de visualização e uma espécie de miniciclo de vida
Outras dicas
Usando a visualização 5, Html.RenderPartial é o seu homem, você pode renderizar subcontroles e passar a eles seus viewdata, ou um modelo arbitrário, e uma nova combinação de viewdata.
Você pode criar um ActionFilter que modifica os dados da visualização.Dessa forma, você pode decorar cada ação que retorna parcial com o filtro de ação.Dê uma olhada na minha postagem:
Você está procurando subcontroladores.Essa implementação é a melhor maneira de fazer o que você está falando.
Editar:Acabei de postar sobre isso aqui: http://mhinze.com/subcontrollers-in-aspnet-mvc/