問題タブ [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.
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 メソッド:
そしてルーティング:
私は多くの時間を無駄にしましたが、何が問題なのかわかりません。
アップデート:
これは私のすべてのルーティングです:
c# - DelegatingHandler での ApiController タイプへのアクセス
プロジェクトに Asp.Net WebAPI を使用しています。私は現在、認証と承認に取り組んでいます。
リクエストの HTTP 認証ヘッダーをチェックし、ID とユーザー プロファイルを作成する messageHandler があります。ただし、コントローラー アクション (またはコントローラーのみ) に、アクションが必要とする可能性のあるクレームを付けたいと考えています (ユーザーが持つことができるクレームがたくさんあるので、すべてをロードしたくありません)。
例えば:
認証メッセージ ハンドラー内で、属性を確認し、必要なものだけに基づいて DB からクレームを取得できるようにしたいと考えています。そのためには、ルートに基づいてヒットするコントローラーとアクションを知る必要があります。
だから私はそれを得ることができます。しかし今、これを反映できるタイプに変換する必要がありますが、私が持っているのはコントローラー名だけです (完全なクラス名や名前空間でさえありません)。これを、属性などを取得するために反映できるものにするにはどうすればよいですか?
DefaultHttpControllerSelector
WebAPIスタックがどのようにそれを行うかを調べていますが、HttpControllerTypeCache
. これは内部クラスなので、インスタンスを作成できません。ターゲットコントローラーのタイプを取得する正しい方法は何ですか?
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」でも試しましたが、同じ問題です。
何か案が?
ありがとう。
c# - ほとんどの MVC アクションを Web API コントローラーに送信する
Web API コントローラーを使用して MVC プロジェクトをビルドしました。メソッドを使用する代わりにPOST
、GET
API コントローラーでアクションを使用するようにルートを構成しました。
これが私のルーター設定です:
そして、ここに私のコントローラーがあります:
このコードが良いか悪いかはわかりません。Web API コントローラーを適切に使用していますか?
c# - web-api のオプション パラメータを使用したルーティング
web-api を使用して、/api/cat/orders/ に移動します
以下のルートとコントローラーメソッドを指定しました。「extid」をオプションにしたので、「ApiRouteWithCategoryAndExtId」ルートと「GetMessageByCategoryExtId」メソッドが使用されることを期待していました。ただし、デフォルトの Get メソッドを使用しています。
(/api/cat/orders/id18 は GetMessageByCategoryExtId を使用しますが、extid はオプションではありません)
私は何を間違っていますか?
ルート:
コントローラ:
asp.net-mvc - 複数の Get アクションが存在する場合の MVC API ルーティング
スタック オーバーフローについて同じ質問をする人が何千人もいるようですが、この問題に対する単一の解決策はないようです。もう一度聞いてみます...
次のアクションを持つ API コントローラーがあります。
APIConfig で、次のルートを定義しました。
次のアクションに問題なくアクセスできることがわかりました: /api/exploitation /api/exploitation/getbysongwriterid/1 /api/exploitation/getbysongid/1
/api/exploitation/1 にアクセスしようとすると、この例外が発生します
私のルートの何が問題なのか誰にもわかりますか? それとも他の何かが間違っていますか?
asp.net-web-api - ルートに有効なコントローラーを指定する
システム用に2 つの Web API コントローラーを提供する必要がPublicController
ありPrivateController
ます。これらには次のルートが必要です。
/public/{controller}/{id}
と
/private/{controller}/{id}
ファイアウォールでは、へのすべての要求/private
がブロックされ、ネットワーク内からのみ利用できます。ただし、慣例により、両方のコントローラーが両方のルートで使用できるため、 url を使用して要求することができPrivateController
ます (これは でのみ使用できるはずです) 。/private
/public/PrivateController/1
PrivateController
プライベート ルートでのみ使用できるように、ルートに有効なコントローラを指定する方法はありますか? または、この要件を満たすための他のプラクティスはありますか?
返信ありがとうございます。
asp.net-mvc-4 - mvc4 Web API ルート スキーム
次のようにリソースにアクセスしたい:
このルートで間違っているのは何ですか?
編集
エラーの詳細は次のとおりです。
c# - ルーティングのオプション パラメータに関する RouteTester の問題
ルートのオプションの「id」パラメーターで正しく機能するルーティングを備えた MVC4 WebApi プロジェクトがあります。
実際のリクエストを作成すると、ルーティングはコントローラ メソッドの GetAll または Get メソッドのいずれかにヒットするように機能します。
しかし単体テストでは、RouteTester オブジェクトは常に GetAll ではなく Get メソッドにヒットします。
作品:
失敗:
null の代わりに実際のフィルター オブジェクトを渡そうとしましたが、結果はまったく変わりません。
2 つの異なるルートを作成することで修正できることはわかっていますが、現在のルーティングは単体テスト以外のすべてで機能するため、少し気が進まないのです。
助言がありますか?
asp.net - PUT を使用した ASP.NET Web API ルーティング
私は、非常に単純なことだと思っていた Web API ルーティングをセットアップしようとしています。ただし、Web API でのルーティングは、さまざまな HTTP 動詞と一致していないようです。これらのアクションを備えたこのコントローラーがあるとします...
そして、次のルートが定義されています...
その後、次のルートが定義されてしまいます...
デフォルトの PUT ルートが選択されないのはなぜですか? デフォルトの GET とデフォルトの PUT のルーティングの違いは何ですか? 考えられるあらゆる方法で関数を装飾しようとしましたが、同じ結果が得られます。
主に、デフォルトの PUT ルートを取得する方法を知りたいです。これらのルートを変更する方法について提案があれば、コントローラーごとにルートを指定してアクション名を指定する必要がなくなります。これも素晴らしいでしょう。
ありがとう!
イアン
編集:今朝、次のルートも定義されていないことに気付きました..