【发布时间】:2015-08-25 21:22:16
【问题描述】:
我有多个控制器端点,路由如下:
[Route("api/myobjects/action1/action2/{objectIds}")]
它们都有这样的方法签名(访问修饰符和返回类型被省略):
Post([ModelBinder(typeof(CommaDelimitedArrayModelBinder))] int[] objectIds)
自定义模型绑定器允许我像这样发布到端点:
../api/myobjects/action1/action2/1,2,3
这很好用!但是,帮助页面文档生成过程会忽略所有这些方法。
如果我像这样删除 modelbinder 属性:
Post(int[] objectIds)
还是不行。只有当我将[FromUri] 添加到参数并从路由属性中删除{objectIds} 时它才会起作用:
Post([FromUri] int[] objectIds)
但这会生成一个不需要的 uri,如下所示:
../api/myobjects/action1/action2?objectIds[0]={objectIds[0]}&objectIds[1]={objectIds[1]}
如何让帮助页面文档流程识别我的端点?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api-helppages