asp.net Core mvc隐藏和排除Web Api控制器方法

cno*_*nom 7 c# asp.net-core-mvc asp.net-core

我知道有ApiExplorerSettings属性

[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IActionResult> MyMethod(int id)
Run Code Online (Sandbox Code Playgroud)

但这并不能阻止api的客户端调用端点方法.

我需要知道是否存在禁用端点的属性并且不允许请求.我想通过修改路由机制来避免这样做.

Kir*_*kin 18

最简单的MVC方法可能是使用NonAction属性,如下所示:

[ApiExplorerSettings(IgnoreApi = true)]
[NonAction]
public async Task<IActionResult> MyMethod(int id)
Run Code Online (Sandbox Code Playgroud)

另一种选择是仅将方法的访问修饰符更改public为例如private相同的效果.