martes, 9 de marzo de 2010
El framework ASP.NET MVC 2 ha introducido un nuevo filtro llamado
Supongamos el siguiente código en el controlador, digamos,
Atendiendo a la ruta por defecto, una petición del tipo
¿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
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í:
La diferencia entre ambos es que
Publicado en: Variable not found.
Hey, ¡estoy en twitter!
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);
}
Atendiendo a la ruta por defecto, una petición del tipo
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