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?

Foi útil?

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:

http://stephenwalther.com/blog/archive/2008/08/12/asp-net-mvc-tip-31-passing-data-to-master-pages-and-user-controls.aspx

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/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top