問題タブ [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-4 - MVC4 Web-API - ルート マッピングのヘルプが必要
私はという名前のコントローラーを持っています
Products と i には 3 つのアクションがあります
- Product : int を受け取り、モデル (クラス) オブジェクトを返します
- カテゴリ:文字列を受け取り、モデル (クラス) オブジェクトの配列を返します
- すべて:モデル (クラス) オブジェクトの配列を返すパラメーターはありません
私が試していたのは、次のマッピングでした
製品-> api / 製品 / 製品 / 1
カテゴリ-> api / 製品 / カテゴリ / ソース
すべて-> api / 製品 / すべて
アクションの名前はURL構造をサポートしているので、一般的なルートを試していました
他のすべては機能していますが、このhttp://localhost:2271/api/products/category/2
URLを使用すると次のエラーが発生します
一方、この URL api/products/category/?cat=abc
&api/products/category?cat=abc
は正常に機能しています...... [cat は受信パラメータ名です]
ヘルプ !!!
c# - Web API .net で params を使用してアクションにルーティングすることは可能ですか?
アクションにルーティングすることは可能ですか?
URL は「/api/Products/CategoryId/full/Name/ProductID/」のようになります
おそらくプロパティがオプションであるため、アクションを呼び出しますが、プロパティパラメータは常にnullです。リクエストの本文で Name および ProductID 引数を渡そうとしましたが、プロパティは null のままです。アクションに 0..N の引数を渡したいので、「params」を使用します。
ルート テンプレートは次のとおりです。
asp.net-mvc - MVC 3 Web API ルーティングが機能しない
MVC 3 Web API でのルーティングに関する問題と戦っています。それはかなり単純なはずですが、私は前進していません。
私のエラーは次のとおりです。
私のRegisterRoutesはそのようなものです:
そして私のコントローラーは(読みやすくするためにコードを取り出しました):
電話しようとするとエラーが発生します:
ティア
c# - WebApi アクションで C# キーワードを使用する
レガシー Web サービスを置き換えるコントローラーでアクションを作成しています。問題は、C# キーワード (ref) をパラメーターとして使用する必要があることです。予約語 ref を使用しているため、以下のコードはコンパイルされません。では、これに対処するために WebApi ルーティングを設定するにはどうすればよいでしょうか?
例:
ありがとう
c# - Web API の壊れたルーティング/アクション
WebApiConfig.cs で既定のルートを定義しています。
私のコントローラーには、アクションがあります:
これが最近機能していたことは知っていますが、悪名高い「コントローラー 'ユーザー' で要求に一致するアクションが見つかりませんでした」というエラーが表示されます。何が(もしあれば)変更されたのかわかりません。ページ/オフセットのデフォルトを追加してからのすべての変更を元に戻しましたが、まだ何もしていません。
何か案は?
リクエスト URL:http://localhost/api/api/Users
c# - Web API プロジェクトのルーティングの問題
シンプルな Web API プロジェクト (ASP.NET MVC) があります。プロジェクトを IIS のサブフォルダーにデプロイする必要があります。たとえば、サイトhttp://TestSite
/ があり、プロジェクトを にデプロイする必要があるとしhttp://TestSite/MyProject/
ます。私がやったとき、Web APIルーティングが機能しなくなりました。私の ajax 呼び出しはメイン サイト - にルーティングされるためhttp://TestSite/api/something/get
です。
次の方法でマップ ルーティングを更新しようとしました。
しかし、それは私が望むようには影響しません。ASP.NET MVC での Web API コントロール ルーティングのいくつかのプラクティスについて、どこで読むことができますか?
asp.net - Asp.net Web API: コントローラーでアクションが見つかりませんでした
だから、これは本当に私を頭痛の種にしています。
ルート:
コントローラ:
しかし、uri: /api/lookups/all にアクセスしようとすると、次のような 404 エラーが表示されます。
「名前「all」に一致するコントローラー「ルックアップ」でアクションが見つかりませんでした。」
どんな助けでもいただければ幸いです
編集:だから私は最終的にそれを理解しました。それは間違った依存関係が原因でした。VS2012 はアクションを system.web.mvc.actionnameattribute に自動解決しましたが、必要なのは system.web.http.actionnameattribute でした。
とにかく奇妙な問題ですが、これが他の誰かに役立つことを願っています。
c# - デフォルトのアクション名が HTTP アクション動詞と等しいことをルーティングに伝える方法はありますか?
MSDN でこのドキュメントを調べましたが、答えがわかりません。
次のように定義されたルートがあることを考慮してください。
これで、次のような 2 つのコントローラーができました。
次のように、これらすべてのエンドポイントを呼び出せるようにしたいと思います。
これは機能しますが、デフォルトのアクション名として「Get」を追加した場合のみです。ルートでデフォルトのアクション名を指定しないと、一致する複数のアクション名についてエラーが発生します。デフォルトのアクション名を追加すると、アクション名がデフォルトと一致せず見つからないため、エラーなしで PUT() メソッドに PUT を呼び出すことはできません。
HTTP 動詞に一致する名前のアクションを使用するようルーティングに指示するにはどうすればよいですか (使用する前に存在する場合)。