【问题标题】:ASP.NET - What's the difference between ChildActionOnly and NonAction attributes?ASP.NET - ChildActionOnly 和 NonAction 属性有什么区别?
【发布时间】:2017-07-13 06:25:50
【问题描述】:

出于好奇,这两个属性有什么区别?

NonAction 和 ChildActionOnly

这两个属性对我来说似乎都一样。防止管道(动作调用者)调用动作方法。请看一下这个sn-p:

[NonAction]
private ActionResult StackOverflow1()
{
    // Omitted for brevity.
    return View();
}

[ChildActionOnly]
private ActionResult StackOverflow2()
{
    // Omitted for brevity.
    return View();
}

当然,这两种方法都不会被调用,因为它们是私有的——至少在默认实现中是这样——但出于好奇,我想知道它们之间的区别......

【问题讨论】:

    标签: c# asp.net asp.net-mvc


    【解决方案1】:

    ChildActionOnly -- 只能由另一个操作调用,而不能直接从外部调用(通过路由)调用。允许的操作包括 Action/RenderAction 扩展方法。

    NonAction -- 就像将方法标记为“私有”,以防止它被外部调用或作为子操作访问。有利于保护您不需要/想要创建为直接视图的操作。值得一提的是,这仅在公共方法上是必需的(因为私有/受保护不被认为是“可操作的”)。

    另见:

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 2011-11-14
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 2016-04-29
      相关资源
      最近更新 更多