子动作(Child Action)是通过视图调用的方法
当你希望将某种控制器逻辑用到应用程序的多个地方时,子动作可以避免重复的控制器逻辑。子动作与动作之间的关系,如同分部视图和视图之间的关系。
1.创建子动作:
在User控制器中,添加子动作方法:
/// <summary>
/// 创建子动作
/// </summary>
/// <returns></returns>
[ChildActionOnly]
public ActionResult Time()
{
return PartialView(DateTime.Now);
}
创建动作方法对应的部分视图:
@*创建强类型分部视图*@
@model DateTime
<p>The time is:@Model.ToShortTimeString()</p>
在当前Controller下的Action对应的View中调用子动作:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>List</title>
</head>
<body>
<div>
<h3>This is the /Views/User/List.cshtml View</h3>
@*引入分部视图MyPartial*@
@Html.Partial("MyPartial")
</div>
<div>
<h3>引入强类型分部视图:</h3>
@Html.Partial("MyStronglyTypedPartial",new string[]{"Apple","Orange","Pear"})
@*调用子动作*@
@Html.Action("Time")
</div>
</body>
</html>
Result:
为了调用其他控制器里的动作方法,需要提供控制器名称:
比如在Home控制器中调用User控制器中的动作方法:
@*调用其他控制器中的动作方法*@
@Html.Action("Time","User")
Result: