您的位置:首页 > 其它

【MVC】什么是 ChildAction

2013-06-17 18:14 225 查看
在视图页中,你或许经常需要注入一些有其他action的输出, 例如,插入菜单。 大多情况,对于菜单的生成,可能牵涉到很多逻辑(取决于权限 、用户等),所以生成过程不是放在局部视图(Patial view)中,而是放在controller中:

 

public class MenuController : Controller
{
[ChildActionOnly]
public ActionResult Menu()
{
MenuViewModel model = GenerateMenu();
return View(model);
}
}


这种类型的action 就叫做 ChildAction, 因为它不能也不应该被外部通过访问url所调用, 只能被内部程序所调用,一般来说都是在另一个视图中被调用。

 

@Html.Action("Menu", "Menu")


如果当一个action被当作ChildAction调用时,你想针对这种调用做一些特殊的处理的话, 可以检查 ActionExecutingContext.IsChildAction/ViewContext.IsChildAction 属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: