[C#]角-与参数的 HTTP GET 请求向浩然 + Web API 控制器找不到

发布时间: 2017/2/23 20:05:08
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试着使 HTTP GET 请求 URI 中的 id 到我 Web API 控制器但我找不到它应有的功能最好在 ID 成功︰

角控制器

  $http({
        method: 'GET',
        url: 'api/Files/Id/' + blobId,
        responsetype: 'arraybuffer'
    }).then(function successcallback(response) {

        console.log(response);
        //logic

    }, function errorcallback(response) {

    });

Startup.cs

 config.MapHttpAttributeRoutes();
 config.Routes.MapHttpRoute("DefaultAPI",
      "api/{controller}/{id}",
      new { id = RouteParameter.Optional });

Web API 控制器

 [RoutePrefix("api/Files")]
 public class FileController : ApiController
 {
   //   /api/Files/
   [Authorize]
   [Route("")]
   public IHttpActionResult GetAll()
   {

   }

   //   /api/Files/Id/
   [Authorize]
   [Route("Id")]
   public async Task<HttpResponseMessage> Get([FromUri] string id)
   {
   }
}

该请求返回找不到。URL 应该是︰

url: '。api/控制器/文件 /' + blobId

url:'。api/控制器/文件 /'

和我在 ID 中应传递有关以不同的方式?

解决方法 1:

你写的

...
[RoutePrefix("api/Files")]
public class FileController : ApiController
...

但在你角的代码中使用/api/Controller/File/

此外需要编写︰

...
[Route("{Id}")]
public async Task<HttpResponseMessage> Get([FromUri] string id)
...

你的 don´t 需要键入 controller 您的控制器是 FileController 和你定义的路由 "api/Files" 为它。

因为,你可能会写 .../api/api/Files/ 但我不知道这一点。你要测试它

官方微信
官方QQ群
31647020