2017-02-23 9 views
1

ASP.NET Core Webアプリケーション(.NET Framework)を使用してプロジェクトを作成しました。マイプロジェクト構造:WebAPIコントローラメソッドのヒット時に404を取得する

Project Structure

は、私の値コントローラは、MVCコントローラから継承されます。私がhttp://localhost:20798/api/valuesを押すと、私は希望の応答を得ます。 Values Controller

私はConsumerScoreコントローラを追加しました。今回はApiControllerから継承したWebAPIコントローラを追加しました。しかし、今私がhttp://localhost:20798/api/consumerscoreを押すと、私は404応答を得ています。このエラーを解決する方法 ConsumerScore controller

Error Response

ConsumerScoreコントローラは次のようになりますか?

+0

なぜ「デフォルト」の方法にアクセスしようとしているときに、ConsumerScoreController用の特別なルートがありますか? – NicoRiff

+0

@NicoRiff以前は私はそれを持っていなかった、私は後でそれを追加し、エラーを解決するだろうと思った。しかし、運がない! – Sameer

+0

そのコードはasp.net-mvc5とasp.net-coreを混在させています – Nkosi

答えて

1

エラーは "ApiController"にあるので、実装ではControllerだけを使用してください。

MVCとWebAPIがASP.NETコアでマージされているので、実際には特定のApiControllerクラスがあります。しかし、MVCのControllerクラスでは、ビューやモデルのバインドなど、Web APIを開発するだけでは必要のない機能が多数用意されています。よりご覧ください

:あなたは「MVC」と「ウェブAPI」の考え方を混乱しているようIs ApiController deprecated in .NET CORE?

+1

あなたの答えは100%正しいですが、 そのリンクが別のものに移動、変更、マージされた場合には も役に立たないかもしれません。 ** ** - - ** **あなたの答えを編集し、 のリンクをあなたの答えにコピーすることで、 あなたの答えはこのサイトの生存期間の100% *; - )**あなたはいつでも 素材のソースとして答えの一番下にリンクを残すことができます... –

+1

ありがとう、@Paulo私はASP.NETのコアプロジェクトは2つの選択肢を与えてはならないと思うコントローラ。 – Sameer

0

は思えます。

ASP.net MVCは、Web APIがhttpリクエストに対してデータを交渉可能な方法(json/xml/...)で提供している間にWebページを提供するために使用されます。

MVCルートに「api/*」を追加し、MVC Controllerからデータを提供することは、ベスト・プラクティスではなく、有用なWebサービスに変えません。

あなたのメソッドの見た目からは、ApiControllerが必要ですが、 "〜/ api/*"をウェブブラウザにコピーしてhttpリクエストを作成することはできません。fiddlerやあなたのツールブラウザのデバッガ。

関連する問題