MVC 可选主体参数

Wil*_*iam 5 asp.net-mvc asp.net-core

我正在尝试从第三方系统连接网络钩子。

创建订阅时,它会访问我提供的 URL,并需要返回经过验证的令牌来创建挂钩。

当事件被触发时,挂钩会发布到我在正文中提供数据的同一 URL。

如何获得 Core 2.1 MVC 控制器/路由以将它们视为控制器上的两种不同方法或复杂对象可选的方法签名?

两种 POST 方法(这会产生歧义异常)

public async Task<IActionResult> Index(){}
public async Task<IActionResult> Index([FromBody] ComplexObject co){}
Run Code Online (Sandbox Code Playgroud)

或complexObject是可选的(如果不是,它会抛出一个Executing ObjectResult,在订阅创建步骤中写入类型为“Microsoft.AspNetCore.Mvc.SerializedError”的值。)

public async Task<IActionResult> Index([FromBody] ComplexObject co){}
Run Code Online (Sandbox Code Playgroud)

Wil*_*iam 0

我使用空参数方法签名并检查主体中的数据。不理想。