問題タブ [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 投票する
8 に答える
173540 参照

c# - ASP.NET Web API のカスタム メソッド名

WCF Web API から新しい ASP.NET MVC 4 Web API に変換しています。UsersController があり、Authenticate という名前のメソッドが必要です。GetAll、GetOne、Post、および Delete を実行する方法の例を見ましたが、これらのサービスにメソッドを追加したい場合はどうすればよいでしょうか? たとえば、私の UsersService には、ユーザー名とパスワードを渡す Authenticate というメソッドが必要ですが、機能しません。

myapi/api/users/ を参照すると GetAll が呼び出され、myapi/api/users/1 を参照すると Get が呼び出されますが、myapi/api/users/authenticate?username={0} を呼び出すと&password={1} の場合、Get (認証ではなく) が呼び出され、エラーが発生します。

パラメーター ディクショナリには、'Navtrak.Services.WCF.NavtrakAPI.Controllers.UsersController' のメソッド 'System.String Get(Int32)' の null 非許容型 'System.Int32' のパラメーター 'id' の null エントリが含まれています。オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。

Authenticate などのカスタム メソッド名を呼び出すにはどうすればよいですか?

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

c# - エリアごとに分割されたコントローラー

重複の可能性:
AREAで作成されたコントローラーを登録するにはどうすればよいですか?

質問があります-次のことは可能ですか?

私には3つの領域があります:

各エリア内には同じ名前のApiControllerがありますが、もちろん異なる名前空間にあります。

また、構成にcurrent(使用したい)Areaの値があります。

ユーザーがブラウザーに入力した場合、ユーザーを適切なエリア(構成で見つけることができます)のコントローラーにマップしたいと思います。

たとえば、構成ファイルの現在の領域がSiteOneの場合、この要求はMvcAppliaction.Areas.SiteOne.Controllers.ValuesControllerコントローラーにマップする必要がありますが、構成ファイルの現在の領域を_DefaultのSiteTwoに変更すると、正しいコントローラーにマップする必要があります。

PS。MVCコントローラーを使用すると簡単です。ルートを設定するだけです。

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

c# - asp.net webapi:オプションのパラメーターを渡す方法は?

新しいasp.netWebAPIを使用しており、オプションのパラメーターを渡したいと思います。?シンボルを使用してパラメータを渡すことができるように、属性を設定する必要があるのは正しいですか?

これがuriテンプレートで行われる前は、私は信じています。

誰か例がありますか?

私は現在、コントローラーにintとして到着するURLでIDを渡しています。しかし、私はいくつかの日付を渡す必要があります。

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

c# - WebApi / URL エンコーディングによるルーティング

これに関連: URL 内の URL エンコードされたスラッシュ

Mehrdad Afshari の回答 (ワイルドカード ルート パラメータ) を使用しました。ただし、複数のスラッシュは 1 つのスラッシュに変換されます。

私のルートはresource/{*url}

GET resource/abc%2fdef私のコントローラーメソッドは with で呼び出されますabc/def

私のコントローラーでGET resource/abc%2f%2f%2f%2fdefは、メソッドが再び呼び出されabc/defます。余分なスラッシュは失われます。

0 投票する
41 に答える
379809 参照

c# - 投稿パラメーターは常に null です

RC for WebAPI にアップグレードしてから、WebAPI で POST を呼び出すときに奇妙な問題が発生しています。新しいプロジェクトで生成された基本バージョンに戻りました。そう:

そしてフィドラーからの呼び出し:

デバッグすると、文字列「値」が割り当てられません。それは常にNULLです。この問題を抱えている人はいますか?

(私はより複雑なタイプの問題を最初に見ました)

この問題は ASP.NET MVC 4 に限定されているだけでなく、RC インストール後の新しい ASP.NET MVC 3 プロジェクトでも同じ問題が発生します。

0 投票する
11 に答える
197731 参照

c# - Web API コントローラーの複数の HttpPost メソッド

HttpPostMVC4 Web API プロジェクトの使用を開始しています。複数のメソッドを持つコントローラーがあります。コントローラーは次のようになります。

コントローラ

ここでMyRequestTemplateは、リクエストから来る Json の処理を​​担当するテンプレート クラスを表します。

エラー:

Fiddler for を使用してリクエストを行うとhttp://localhost:52370/api/VTRouting/TSPRoutehttp://localhost:52370/api/VTRouting/Route エラーが発生します。

リクエストに一致する複数のアクションが見つかりました

上記の方法のいずれかを削除すると、正常に機能します。

Global.asax

でデフォルトのルーティング テーブルを変更しようとしましたglobal.asaxが、まだエラーが発生します。global.asax でのルートの定義に問題があると思います。これがglobal.asaxで行っていることです。

POST を使用して Fiddler でリクエストを作成し、MyRequestTemplate の RequestBody で json を渡します。

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

c# - クエリ文字列パラメータ名に基づくルーティング

MVC4WebAPIプロジェクトでルーティングを構成しようとしています。

名前や種類に基づいて商品を検索できるようにしたいと思います。

/api/products?name=WidgetX-WidgetXという名前 /api/products?type=gadgetのすべての製品を返します-ガジェットタイプのすべての製品を返します

ルートは次のように構成されます。

問題は、クエリ文字列パラメータの名前が無視されているように見えるため、クエリ文字列パラメータの名前に関係なく、最初のルートが常に使用されるルートになることです。ルートを正しく変更するにはどうすればよいですか?

0 投票する
10 に答える
146680 参照

c# - ASP.NET Web API で複数の Get メソッドを使用したルーティング

私は ASP.NET MVC で Web Api を使用していますが、これは初めてです。私はasp.net Webサイトでいくつかのデモを行っており、次のことをしようとしています。

次のシグネチャを持つ 4 つの get メソッドがあります。

上記のすべてのメソッドについて、Web API を以下のようにしたいと考えています。

  • リスト Get() =api/customers/
  • 顧客 GetCustomerById(文字列 ID) =api/customers/13
  • List GetCustomerByCurrentMonth() =/customers/currentMonth
  • 顧客 GetCustomerByUsername(文字列ユーザー名) =/customers/customerByUsername/yasser

ルーティングを変更してみましたが、初心者なのであまり理解できませんでした。

ですから、これをどのように行うべきかを理解し、案内してくれる人がいます。ありがとう

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

asp.net-mvc - ASP.NETMVCWeb.Apiルーティング-実際の例

私はWeb.Apiでのルーティングと、エンドポイントを表すさまざまな方法を検討してきました。InstagramのRESTエンドポイントに出くわしました。(いくつかの素敵なドキュメントがあります)Web.Apiを使用して、Instagramユーザーエンドポイントのような状況のルーティングとコントローラーを設定するための最良の方法は何でしょうか?

これらのエンドポイントをアプリで複製したい場合は、どうすればよいでしょうか。5つのメソッドを持つ1つのコントローラー「ユーザー」が必要でしょうか。REST呼び出しをそれらのメソッドに転送するには、どのようなルーティングが必要ですか。

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

c# - 同じHttpVerbに対する複数のアクション

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

そして、次のルートがマッピングされました。

次のリクエストを行うと、すべてが期待どおりに機能します。

しかし、私が次のことを要求しようとすると、

次の例外が発生します。

デフォルトルートに空のアクション名を追加しようとしましたが、それは役に立ちませんでした:

デフォルトのRESTfulルーティングをカスタムアクション名と組み合わせる方法はありますか?

編集:ルーティングメカニズムは、コントローラーの選択によって混乱することはありません。単一のコントローラーでのアクションの選択によって混乱します。私が必要としているのは、アクションが指定されていないときにデフォルトのアクションと一致させることです。それが物事を明確にすることを願っています。