本文参考:http://www.cnblogs.com/willick/p/3410855.html
1、Child action 和 Patial view 类似,也是在应用程序的不同地方可以重复利用相同的子内容。不同的是,它是通过调用 controller 中的 action 方法来呈现子内容的,并且一般包含了业务的处理。任何 action 都可以作为子 action 。示例:
//1、ChildActionOnly 特性保证了该 action 只能作为子action被调用(不是必须的) [ChildActionOnly] public ActionResult Time() { return PartialView(DateTime.Now); } //2、View Time.cshtml @model DateTime <p>The time is: @Model.ToShortTimeString()</p> //3、在 List.cshtml 视图中添加如下代码来调用 Time action 方法 : @Html.Action("Time")
通过 @Html.Action 方法来调用了 Time action 方法来呈现子内容。在这个方法中我们只传了一个action名称参数,MVC将根据当前View所在Controller去查找这个action。如果是调用其它 controller 中的 action 方法,则需要在第二个参数中指定 controller 的名称,如下:
@Html.Action("Time", "MyController")
该方法也可以给 action 方法的参数传值,如对于下面带有参数的 action:
[ChildActionOnly] public ActionResult Time(DateTime time) { return PartialView(time); } @Html.Action("Time", new { time = DateTime.Now })