我在ApiController上有两个get方法:
public HttpResponseMessage Get([FromBody]FileGetModel model)
和
public List<FileModel> Get([FromBody]MemberFIleSearchModel model)
我这样称呼:
return $http.get(urlBase, { params: args });
我收到错误消息:
"Multiple actions were found that match the request:
Get on type Api.Controllers.FileUploadController
Get on type Api.Controllers.FileUploadController"
Chrome控制台:
GET http://localhost:4345/api/FileUpload/?FileId=5467f90a9fc83d1378c6c8bf&Version=Original_thumb 500 (Internal Server Error)
我知道这两个动作都有相同的名称但它们是在不同的模型中传递的,所以我认为它应该被正确地路由。
我尝试过使用“Route(”GetFile“)”属性,但我似乎有一个问题,引用正确的或找到正确的命名空间。 HttpRoute(“GetFile”)似乎是我可以编译的唯一属性,但这不起作用,我真的无法找到关于该属性的任何文档。
所以我需要一个解决方案,让“路由”工作或使webapi绑定到正确的模型
答案 0 :(得分:0)
您可以添加路由属性,例如:
public class OrdersController : ApiController
{
[Route("customers/{customerId}/orders")]
[HttpGet]
public IEnumerable<Order> FindOrdersByCustomer(int customerId) { ... }
}
我建议您使用WebApiRouteDebugger调试路线:https://www.nuget.org/packages/WebApiRouteDebugger/