Me gusta usar el método de extensión RenderAction
en el objeto HtmlHelper
para representar barras laterales y elementos similares en páginas, ya que me permite conservar el código de acceso a datos para cada parte en métodos separados en el controlador. Utilizando una base de controlador abstracta, puedo definir una "estrategia de barra lateral" predeterminada, que luego se puede refinar anulando el método en un controlador concreto, cuando sea necesario.Me gusta Html.RenderAction() pero sin reinstalar el objeto del controlador
El único "problema" que tengo con este enfoque es que el RenderAction
está construido de manera que siempre crea una instancia de noticias de la clase de controlador, incluso cuando las acciones del controlador ya están en acción. Algunos de mis controladores hacen una búsqueda de datos en su método Initialize
, y utilizando el método RenderAction
en la vista hace que esto ocurra varias veces en la misma solicitud.
¿Hay alguna alternativa a RenderAction
que reutilizará el objeto controlador si el método de acción que se va a invocar está en la misma clase de controlador que la acción "principal"?
Por qué es un problema para usted? ¿No haces una optimización prematura? – queen3
@ queen3: Posiblemente, pero esa no es la pregunta :) –