有人可以告诉我为什么我应该使用NonAction吗?我的意思是说我有一个包含多个提交值的表单:更新,删除或插入。由于所有的提交按钮都具有相同的形式,因此我将在控制器内部切换提交值并采取相应的措施。

赞: 通用标签

再一次,为什么我应该使用NonAction代替这样的东西: 通用标签

其他提示

值得注意的是,使用[NonAction]的需求仅适用于公共方法。受保护的方法和私有方法不被视为操作。由于您的Update / Delete / Insert方法是asd()的帮助者,因此私有方法将更适合您的情况: 通用标签

如果您不使用[NonAction]属性,那么有人可以直接调用您的操作,而不必通过'asd'函数

阅读Haack的文章

控制器类中的任何公共方法均可通过URL调用。

有时您可能需要避免这种情况。例如,如果您实现了某个接口并且可能不想调用该公共方法,则可以将其标记为NonAction 通用标签

我刚刚在我们的Web api中使用了[NonAction]来修饰一堆Controller方法(端点),因为我们在最后一刻决定要推迟特定端点的交付。

因此,如果您要避免公开API端点,但仍希望保留实现以备后用,则很有用。

因此,我使用了此属性,它节省了很多时间。

我将在下一发行版中将其删除,并且就可以轻松存在!

NonAction属性使操作无法从导航栏访问。例如,如果您有一个删除数据库中项目的操作,则必须添加NonAction属性以使用户无法访问它。

首先,将ActionResult仅仅看作是MVC返回的一种特殊类型的构造,就可以在MVC框架内内部处理ActionResult的方式而言,它提供了特别的便利。因此,某个事实是ActionResult 不一定意味着“ 该消息应该公开可用”。实际上, MVC控制器中的任何公共方法都将被视为一种操作方法,无论它是否返回ActionResult

因此,简单地将返回结果表示为不是 ActionResult即可 not 不必阻止该方法公开为可通过调用的公开可用操作网址。

可能有很多原因,您不想将方法公开为可以通过url调用的操作,并且在这种情况下,您想使用“ [NonAction]]属性。

这表明控制器方法不是操作方法。示例:[NonAction] public void IndexTest(){//做点事情}当无法将控制器方法的可见性更改为private时,这是非常有用的属性

它是由公共访问修饰符定义的方法上使用的属性。实际上MVC框架将所有公共方法视为URL,但如果您不想要此,则必须使用非操作属性装饰一种方法。通过使方法私有来实现同样的事情。

下面给出了非Apption属性的示例。 http://yogheshdotnet.com/non-action-attribute-in-mvc/

如果您不想调用某些操作方法,则必须将其标记为[NonAction]属性或将其设为私有 通用标签

您可以复制代码并将其粘贴并查看结果。谢谢

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top