我读了一本MVC基础书中关于child actions的内容,但我并不知道它是什么?
有人可以解释一下这些方法吗?
Phil Haack在这篇博客文章中很好地解释了它。基本上,一个child action是一个控制器动作,你可以使用Html.Action
助手从视图中调用:
@Html.Action("SomeActionName", "SomeController")
这个操作会在视图中指定的位置执行并渲染其输出。与Partial不同的是,Partial仅包含指定的标记,没有其他操作执行主要操作。
因此,您基本上有一个接收请求并呈现视图的主操作,但从此视图中,您可以呈现多个子操作,这些子操作将经过它们独立的MVC生命周期并最终呈现输出。而所有这一切都将在单个HTTP请求的上下文中发生。
子操作非常适用于创建整个可重用的小部件,这些小部件可以嵌入到您的视图中,并通过它们独立的MVC生命周期。
子操作是通过在视图内使用html.renderaction或html.action助手调用的操作。
子操作是通过@Html.Action()在视图中调用的动作方法。
示例 我在控制器上有一个操作。
public DateTime Time(DateTime time)
{
return time;
}
要从 View 调用此操作,我将使用以下代码:
@Html.Action("Time", new { time = DateTime.Now })
Html.Partial
方法时,该动作自动成为子动作。如果你在动作上使用了[ChildActionOnly]
属性修饰,那么它只能被用作子动作,无法直接访问。 - Darin Dimitrov