2013-06-25 93 views
0
public static void Register(HttpConfiguration config) 
    { 
      config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 

中的global.asax.cs我做的: WebApiConfig.Register(System.Web.Http.GlobalConfiguration.Configuration); 斷點確認路線正在註冊。的WebAPI沒有找到我的App_Data文件夾控制器

在App_Data文件夾,我把一個文件夾的WebAPI,並放入BlogPosts.cs具有以下內容:

public class BlogPosts : ApiController 
{ 
    public string Get() 
    { 
     return "Hello World"; 
    } 
} 

更重要的是我必須做的就是該網站使用的WebAPI? http://localhost:49396/api/BlogPosts給我:

<Error> 
<Message> 
No HTTP resource was found that matches the request URI 'http://localhost:49396/api/BlogPosts'. 
</Message> 
<MessageDetail> 
No type was found that matches the controller named 'BlogPosts'. 
</MessageDetail> 
</Error> 

因此的WebAPI已經臨時用戶正確的,但它只是沒有找到在App_Data文件夾中的ApiController。我正好錯過了一些東西。 (它不是一個MVC4項目,而是一個我嘗試添加api的網站)。

+0

App_Data文件夾是您必須使用的原因嗎? –

+0

獲得'類庫',這是有道理的。 –

+0

它下的App_Data來隱藏它,這樣的客戶端不能下載文件?它是一個網站結構。不是像mvc4這樣的視覺工作室的WebApp解決方案 –

回答

2

App_Data通常不用於這種情況。這可能是你BlogPosts.cs文件未設置爲編譯但類似內容。因此,在解決方案資源管理器中點擊BlogPosts.cs,轉至屬性並將Build Action設置更改爲編譯

另一個問題是您的BlogPosts丟失控制器後綴。將您的班級重命名爲BlogPostsController

如果你創建一個特殊的文件夾,你可以保留你的Web API控制器,比如ApiControllers

+0

我沒有Build Action porperti。它的網站是用Webmatrix打開的,並在Visual Studio中打開。 –

+0

將它移動到app_code並且它工作。 –