2017-01-19 5 views
0

をルーティングして発見されていません:ウェブAPIコントローラは、私は、このフォルダ構造内のコントローラを持っている属性は

public static void Register(HttpConfiguration config) 
{ 
    // Web API configuration and services 

    // Web API routes 
    config.MapHttpAttributeRoutes(); 

    config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 
} 

私はVisual Studioからサイトを実行し、http://127.0.0.1:8080/api/eventにアクセスしようとすると私は以下のようWebApiConfig.csを作るためにconfig.Routes.MapHttpRoute行をコメントアウトした場合は上記のURLが機能する、

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

:何が、このエラーが表示されない

public static void Register(HttpConfiguration config) 
{ 
    // Web API configuration and services 

    // Web API routes 
    config.MapHttpAttributeRoutes(); 

    //config.Routes.MapHttpRoute(
    // name: "DefaultApi", 
    // routeTemplate: "api/{controller}/{id}", 
    // defaults: new { id = RouteParameter.Optional } 
    //); 
} 

私が間違って何をやっています? DefaultApiルートが設定されているときに属性ルーティングが失敗する原因は何ですか?私はconfig.MapHttpAttributeRoutes()の前後に配置しようとしました。いずれも動作しません。

私は手動でMVC/Web APIプロジェクトと同じ構造を持ち、動作する次の記事を読んでこのプロジェクトを手作業で構築しました。私は、私が何をやったのか分かりません。

http://www.codemag.com/Article/1605081

+1

すぐには分かりませんが、あなたの 'EventsController'はMpcコントローラを継承し、Apiのものを継承していないようです。また、 'EventsController'の目的は何ですか?それはビューを返しているが、/ api/routeを持つMvcコントローラですか?私の推測では、属性ルーティングはMvcコントローラ上にあるので混乱しています。 –

+0

ありがとうございました!場所からちょうど3文字とそれはすべてクレイ・クレイになります! –

+0

問題なく、うまくいきました。 –

答えて

0

@phil-cooperanswerのおかげでは、APIコントローラに正しい基本クラスを継承することでした。

関連する問題