【问题标题】:asp.net Core mvc hide and exclude Web Api Controller Methodasp.net Core mvc 隐藏和排除 Web Api 控制器方法
【发布时间】:2017-11-16 11:36:05
【问题描述】:
我知道有 ApiExplorerSettings 属性
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IActionResult> MyMethod(int id)
但这并不能阻止 api 的客户端调用端点方法。
我需要知道是否存在禁用端点并且不允许请求的属性。我想通过修改路由机制来避免这样做。
【问题讨论】:
标签:
c#
asp.net-core
asp.net-core-mvc
【解决方案1】:
最简单的 MVC 方法可能是使用 NonAction 属性,如下所示:
[ApiExplorerSettings(IgnoreApi = true)]
[NonAction]
public async Task<IActionResult> MyMethod(int id)
另一种选择是将方法的访问修饰符从 public 更改为例如private 效果相同。
如果您想排除整个控制器,可以使用NonController 属性:
[NonController]
public class MyController : ControllerBase