問題タブ [asp.net-web-api-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
379 参照

asp.net-mvc - ASP.NET MVC API でオブジェクトを投稿する

シンプルなmvc 4 プロジェクトに Web アプリケーションを含むMVC アプリケーションがあります。さらに、私はWindows アプリケーションを持っています。これは、他の Windows アプリケーション プロジェクトでの Web アプリケーションの Windows 実行です。

Windows アプリケーションはMVC APIを使用し、resthelper クラスによって TfsApiController という名前で MVC Web アプリケーション コントローラーを呼び出します。

post メソッドを除くすべてのメソッドが機能しています。オブジェクトを tfsapi コントローラーに投稿したいと考えています。

残りのヘルパー クラスの post メソッド:

私の TfsApiController メソッド:

そしてルーティング:

私は多くの時間を無駄にしましたが、何が問題なのかわかりません。

アップデート:

これは私のすべてのルーティングです:

0 投票する
2 に答える
4121 参照

c# - DelegatingHandler での ApiController タイプへのアクセス

プロジェクトに Asp.Net WebAPI を使用しています。私は現在、認証と承認に取り組んでいます。

リクエストの HTTP 認証ヘッダーをチェックし、ID とユーザー プロファイルを作成する messageHandler があります。ただし、コントローラー アクション (またはコントローラーのみ) に、アクションが必要とする可能性のあるクレームを付けたいと考えています (ユーザーが持つことができるクレームがたくさんあるので、すべてをロードしたくありません)。

例えば:

認証メッセージ ハンドラー内で、属性を確認し、必要なものだけに基づいて DB からクレームを取得できるようにしたいと考えています。そのためには、ルートに基づいてヒットするコントローラーとアクションを知る必要があります。

だから私はそれを得ることができます。しかし今、これを反映できるタイプに変換する必要がありますが、私が持っているのはコントローラー名だけです (完全なクラス名や名前空間でさえありません)。これを、属性などを取得するために反映できるものにするにはどうすればよいですか?

DefaultHttpControllerSelectorWebAPIスタックがどのようにそれを行うかを調べていますが、HttpControllerTypeCache. これは内部クラスなので、インスタンスを作成できません。ターゲットコントローラーのタイプを取得する正しい方法は何ですか?

0 投票する
4 に答える
11248 参照

c# - Asp.Net MVC4 + Web API コントローラーの削除要求 >> 404 エラー

Web API コントローラーをテストする VS2012 MVC4 ソリューションがあります。

GET、POST、PUT のテストに成功しましたが、DELETE ではまだ http 404 エラーが発生しました。API コントローラーの「DeleteMovie」アクションにブレークポイントを設定すると、ブレークポイントに到達しません。

この問題に関する多くの投稿を読みましたが、誰も助けてくれませんでした。

DELETE 用の API コントローラーは次のとおりです。

これが私のhtmlページです:

私の古典的なルートは次のとおりです。

API のルーティングは次のとおりです。

ソリューションのプロパティで、[IIS Express を使用する] をオンにして [ローカル IIS Web サーバーを使用する] を構成します。

「Use Visual Studio Development Server」でも試しましたが、同じ問題です。

何か案が?

ありがとう。

0 投票する
0 に答える
431 参照

c# - ほとんどの MVC アクションを Web API コントローラーに送信する

Web API コントローラーを使用して MVC プロジェクトをビルドしました。メソッドを使用する代わりにPOSTGETAPI コントローラーでアクションを使用するようにルートを構成しました。

これが私のルーター設定です:

そして、ここに私のコントローラーがあります:

このコードが良いか悪いかはわかりません。Web API コントローラーを適切に使用していますか?

0 投票する
1 に答える
5601 参照

c# - web-api のオプション パラメータを使用したルーティング

web-api を使用して、/api/cat/orders/ に移動します

以下のルートとコントローラーメソッドを指定しました。「extid」をオプションにしたので、「ApiRouteWithCategoryAndExtId」ルートと「GetMessageByCategoryExtId」メソッドが使用されることを期待していました。ただし、デフォルトの Get メソッドを使用しています。

(/api/cat/orders/id18 は GetMessageByCategoryExtId を使用しますが、extid はオプションではありません)

私は何を間違っていますか?

ルート:

コントローラ:

0 投票する
3 に答える
5825 参照

asp.net-mvc - 複数の Get アクションが存在する場合の MVC API ルーティング

スタック オーバーフローについて同じ質問をする人が何千人もいるようですが、この問題に対する単一の解決策はないようです。もう一度聞いてみます...

次のアクションを持つ API コントローラーがあります。

APIConfig で、次のルートを定義しました。

次のアクションに問題なくアクセスできることがわかりました: /api/exploitation /api/exploitation/getbysongwriterid/1 /api/exploitation/getbysongid/1

/api/exploitation/1 にアクセスしようとすると、この例外が発生します

私のルートの何が問題なのか誰にもわかりますか? それとも他の何かが間違っていますか?

0 投票する
1 に答える
165 参照

asp.net-web-api - ルートに有効なコントローラーを指定する

システム用に2 つの Web API コントローラーを提供する必要がPublicControllerありPrivateControllerます。これらには次のルートが必要です。

/public/{controller}/{id}

/private/{controller}/{id}

ファイアウォールでは、へのすべての要求/privateがブロックされ、ネットワーク内からのみ利用できます。ただし、慣例により、両方のコントローラーが両方のルートで使用できるため、 url を使用して要求することができPrivateControllerます (これは でのみ使用できるはずです) 。/private/public/PrivateController/1

PrivateControllerプライベート ルートでのみ使用できるように、ルートに有効なコントローラを指定する方法はありますか? または、この要件を満たすための他のプラクティスはありますか?

返信ありがとうございます。

0 投票する
2 に答える
139 参照

asp.net-mvc-4 - mvc4 Web API ルート スキーム

次のようにリソースにアクセスしたい:

このルートで間違っているのは何ですか?

編集

エラーの詳細は次のとおりです。

0 投票する
2 に答える
879 参照

c# - ルーティングのオプション パラメータに関する RouteTester の問題

ルートのオプションの「id」パラメーターで正しく機能するルーティングを備えた MVC4 WebApi プロジェクトがあります。

実際のリクエストを作成すると、ルーティングはコントローラ メソッドの GetAll または Get メソッドのいずれかにヒットするように機能します。

しかし単体テストでは、RouteTester オブジェクトは常に GetAll ではなく Get メソッドにヒットします。

作品:

失敗:

null の代わりに実際のフィルター オブジェクトを渡そうとしましたが、結果はまったく変わりません。

2 つの異なるルートを作成することで修正できることはわかっていますが、現在のルーティングは単体テスト以外のすべてで機能するため、少し気が進まないのです。

助言がありますか?

0 投票する
1 に答える
4200 参照

asp.net - PUT を使用した ASP.NET Web API ルーティング

私は、非常に単純なことだと思っていた Web API ルーティングをセットアップしようとしています。ただし、Web API でのルーティングは、さまざまな HTTP 動詞と一致していないようです。これらのアクションを備えたこのコントローラーがあるとします...

そして、次のルートが定義されています...

その後、次のルートが定義されてしまいます...

デフォルトの PUT ルートが選択されないのはなぜですか? デフォルトの GET とデフォルトの PUT のルーティングの違いは何ですか? 考えられるあらゆる方法で関数を装飾しようとしましたが、同じ結果が得られます。

主に、デフォルトの PUT ルートを取得する方法を知りたいです。これらのルートを変更する方法について提案があれば、コントローラーごとにルートを指定してアクション名を指定する必要がなくなります。これも素晴らしいでしょう。

ありがとう!

イアン

編集:今朝、次のルートも定義されていないことに気付きました..