2016-07-05 120 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]」的部分我會嘗試。謝謝! –