質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

Q&A

解決済

1回答

1183閲覧

asp.net web api のControllersフォルダ以外にアクションメソッド を呼び出したい。

america

総合スコア35

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

0グッド

0クリップ

投稿2021/12/01 08:27

asp.net web apiでweb apiを作っており、Controllersのフォルダ内に
作ったクラス内に書いたアクションメッソドはデバッグでブレークポイント
を置くと反応するのですが、Controllers以外のフォルダに新しく
フォルダを作りその中に作ったクラス内のアクションメソッドは
反応がなく困っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BluOxy

2021/12/02 02:37 編集

別質問を拝見する限りアクションメソッドの戻り値に View() を返しているようですが、そのアプリケーションはASP.NET MVC ではないでしょうか。 また、MVC や Web API といってもそれ等のバージョンによって解決方法は変わる可能性がありますので、バージョンを記載していただけますか。 追記:別質問では ASP.NET Core 5 と書いているので、ASP.NET Core MVC のアプリケーションではないでしょうか
退会済みユーザー

退会済みユーザー

2021/12/01 09:27

前のスレッドのアクションメソッドの話なら、Web API ではなくて MVC だと言っておるのですが。回答者の言ってることをちゃんと聞きませんか? > Controllers以外のフォルダに新しくフォルダを作りその中に作ったクラス内のアクションメソッドは反応がなく困っています。 やってることがメチャクチャで迷走してませんか? 呼ばれてないメソッドが反応するはずはありませんけど、呼んでないから当然の結果では?
退会済みユーザー

退会済みユーザー

2021/12/02 02:51

この話は先のスレッド https://teratail.com/questions/371764 でいろいろやった結果おかしなことになったということで、それを解決したいということですよね。であれば、解決は先のスレッドの Q&A で行って、このスレッドは運営に削除依頼を出してください。スレッドの乱立は閲覧者・回答者の迷惑です。
guest

回答1

0

ベストアンサー

質問者さんの前のスレッド https://teratail.com/questions/371764 の ASP.NET Web API のアクションメソッドと関係していて、

Controllers以外のフォルダに新しくフォルダを作りその中に作ったクラス内のアクションメソッド

というのは前のスレッドの「追記」に書いてあった以下のコードのことですよね。

public class Test { readonly ITestList _testList; public Test(ITestList testList) { _testList = testList; }       //[FormBody]用に追加 public class Parameter { public string title { get; set; } public string name { get; set; } } //引数に[FromBody]を追加 public ServiceResult<TestList> GetList([FromBody] Parameter test) { ///ここでJsonデータを受け取りたい return _testList.getList(); } }

そうだとすると、やってることがメチャクチャです。ASP.NET Core Web API のコントローラー/アクションメソッドはそんな形にはなりません。

上のコードの GetList を呼び出すのに前のスレッドと同様 JavaScript を使ったのでしょうか、それでは GetList は呼び出せません。呼ばれてないメソッドが反応するはずはなく、ブレークポイントで止まらないのは当然です。

前のスレッドでも書きましたが、ソリューションエクスプローラーで Controllers フォルダを右クリックすると表示されるメニューで[追加(D)]⇒[コントローラー(T)...]に進んで表示されるダイアログの左側に表示されている「インストール済み」の中から[API]を選択し、右側に表示されるアイテムから[API コントトーラー -空]を選んで作ってみてください。

そうすれば呼び出せます。

イメージ説明

投稿2021/12/07 01:58

編集2021/12/07 02:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問