Pregunta

He estado moviendo bastante un nuevo proyecto desde ViewPages a Razor hoy, y todo parece ir bien. Excepto que estoy tratando de utilizar Html.Action para hacer un control de usuario y no va a hacer nada.

Así que tengo un archivo compartido / _Layout.cshtml la que se hace referencia en Inicio / Index.cshtml

Index.cshtml tiene la siguiente:

<article>

@Html.Action("LatestBlogsMainPanelWidget", "Blogs")

...

</article>

He puesto trampas en el BlogsController, así que sé que se solicitan de. También sé que se está devolviendo un modelo, que el LatestBlogsMainPanelWidget está siendo encontrado por el motor de vista, y el código incluso algunos maniquí Razor sintaxis se está ejecutando: @ { var s = "Hola"; }

pero el HTML plano en este archivo no es lo que hace al navegador. He probado otros (anteriormente de trabajo) parciales también y no aparecerán ya sea (ver fuente en lo confirma la página no está ahí).

También he intentado sustituir @ {Html.RenderAction (...); } sin éxito. HTML ambos lados de la @ Html.Action está apareciendo, por lo que sé Index.cshtml se muestra correctamente.

Aún más extraño el archivo _Layout también tiene comandos Html.Action y hacer aparecerá bien.

Realmente no estoy seguro de qué más para comprobar, o la forma de confirmar que la tubería está recibiendo el código HTML. ¿Alguien puede ayudar a todos?

Gracias!

¿Fue útil?

Solución 3

El cerebro es una cosa divertida, y, a pesar de pasar varias horas en este día de ayer, se llevó a mi perro me despertarse en medio de la noche para un wee para mi subconsciente para tropezar con la respuesta.

Si alguien tenía otra cosa perplejo, no me sorprende. No había mencionado porque no había caído en la cuenta de que yo estaba usando un sistema de almacenamiento en caché de nivel parcial similar a uno diseñado por Steve Sanderson. De repente se me ocurrió que esto podría ser la causa, ya que a lo mejor de mi conocimiento páginas de afeitar pasan por mucho menos procesamiento en paralelo de páginas WebForm. El filtro de almacenamiento en caché probablemente no está haciendo lo que tiene que hacer, o en el momento adecuado.

He confirmado que comentando el filtro OutputCache sobre las acciones en cuestión se ha solucionado el problema.

No tengo ni idea de si este tema es el caso del almacenamiento en caché de nivel de página ya que no es algo que me resulta útil.

Otros consejos

Ponga un diseño = null en la vista parcial y no tendrán ningún problema.

Prueba esto:

@ {Html.RenderAction ( "LatestBlogsMainPanelWidget", "Blogs");}

Si bien la búsqueda de soluciones para este problema, tengo que averiguar tres cuestiones medida para la prestación adecuada de no Html.Action y Html.RenderAction. Por favor, compruebe que ha hecho a continuación cosas correctamente o no.

  1. En su PartialView o vista que se tiene definido @ {Disposición = null;} .
  2. Uso de retorno PartialView en lugar de Ver .
  3. Adorne su acción con [ChildActionOnly] atributos.

espero aplicando por encima de todos los pasos que puede resolver sus problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top