martes, 9 de marzo de 2010

ChildActionOnly
que, como su nombre indica, impide la ejecución del método de acción sobre el que se aplica, a menos que se trate de una “acción hija”. Supongamos el siguiente código en el controlador, digamos,
HomeController
:[ChildActionOnly]
public ActionResult Menu()
{
Menu mnu = getMenuForThisUser();
return PartialView(mnu);
}

GET /Home/Menu
generará una excepción, como la mostrada en la captura de pantalla adjunta.¿Y qué significa eso en la práctica? Pues básicamente que la acción sólo puede ser invocada desde una vista utilizando los métodos
Html.Action()
y Html.RenderAction()
.Ambos métodos, aunque formaban parte del ensamblado futures desde hace algún tiempo, han sido por fin incluídos en MVC 2, y están destinados a introducir en la vista actual el resultado de la ejecución de una “acción hija”, por ejemplo así:
<div id="mainMenu">
<%= Html.Action("Menu") %>
</div>
La diferencia entre ambos es que
Html.Action
retorna un string
con el resultado de la ejecución de dicha acción, mientras que Html.RenderAction()
escribirá directamente la respuesta sobre el canal de salida (Response
).Publicado en: Variable not found.
Hey, ¡estoy en twitter!
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario