ChildActionOnly 标记 - Asp.net MVC

ChildActionOnly标记用于声明Action不能直接通过Url访问,但可以作为某一个Action的子Action访问。

怎么理解?

1、ChildActionOnly标记了Action之后,该Action不能直接通过Url访问;

2、只能通过子Action访问,即@Html.RenderAction()的调用方式作为子Action调用;

如,我们在HomeController里新建两个Action:

1
2
3
4
5
6
7
8
9
10
11
12
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
    [ChildActionOnly]
    public ActionResult Child()
    {
        return Content("Child的Action内容!");
    }
}

此时,通过"/Home/Child"访问Child的Action是报错的。报错如下:

1.png

我们只能视图里以@Hhml.RenderAction()的方式引用Child。

如,index视图什么都不干,只输出Child的返回内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    @{Html.RenderAction("Child");}
</body>
</html>

这样,就能够用的到Child这个Action。

posted @ 2016-09-05 14:52  风流浪子  阅读(562)  评论(0)    收藏  举报
茂名装修|时光照片墙