2016-07-05 118 views
1

我正在尝试将SyncFusion上传框添加到我的Web App。我添加了上传框:上传图片Web Api

<div id="targetElement"> 
       <div id="UploadDefault"></div> 
      </div> 

<script> 
    $(function() { 
     //Declaration 
     $("#UploadDefault").ejUploadbox({ 
      saveUrl: "/api/project/uploadimage" 
     }); 
    }); 
</script> 

然后我想使用的WebAPI控制器补充:

[HttpPost] 
     [Route("project/uploadimage")] 
     public async Task UploadFile(string fileName, string description) 
     { 
} 

但我总是得到HTTP响应:

所请求的资源不支持HTTP方法'POST'

回答

1

你在你的JS代码中调用"/api/project/uploadimage",而你的属性路由是project/uploadimage。你也在你的方法中使用参数,所以如果你想让它们通过url传递,你需要在Route属性([Route("api/project/uploadimage/{fileName}/{description}")])中添加它们,否则你需要从body中获取它们,所以你需要使用[ FromBody]属性的方法。

[HttpPost] 
    [Route("api/project/uploadimage")] 
    public async Task UploadFile([FromBody] string fileName,[FromBody] string description) 
    { 
    } 
+0

“/ api”部分来自该控制器的路由前缀,我忘了提及这一点。 “[FromBody]”的部分我会尝试。谢谢! –