最终将此问题归结为 Swashbuckle 和 intelliTest 之间的一些不兼容(API 应用程序使用 Swasbuckle 为 API 生成 Swagger 文档)。
要解决此问题,请在 API 应用项目的 App_Start 文件夹中打开 SwaggerConfig.cs,并删除以下继承自 IOperationFilter 的类。这样做的缺点是没有将您的参数连接到 swagger 文档中,这是我不太喜欢的东西(默认模型更好地读取一长串参数)。
internal class IncludeParameterNamesInOperationIdFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters != null)
{
// Select the capitalized parameter names
var parameters = operation.parameters.Select(
p => CultureInfo.InvariantCulture.TextInfo.ToTitleCase(p.name));
// Set the operation id to match the format "OperationByParam1AndParam2"
operation.operationId = $"{operation.operationId}By{string.Join("And", parameters)}";
}
}
}