問題タブ [attributerouting]
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-web-api - Asp.Net WebAPI と AttributeRouting - オーバーロードされた属性コンストラクターはありませんか?
WebAPI 用の AttributeRouting NuGet パッケージをダウンロードしたところ、コントローラー内で問題が発生しました。私はそれを使用する方法は次のようなものを持つことだと思った:
ただし、次のエラーが表示されます: エラー 2 'System.Web.Http.HttpGetAttribute' には 1 つの引数を取るコンストラクターが含まれていません
私はこれをかなり迅速に立ち上げて実行する必要があります。HttpGet 属性にオーバーロードされたコンストラクターがない理由はありますか?
アップデート
ルート内:
「api/inbox/EnquiryCount」の URL にアクセスすると、次のエラーが表示されます。
asp.net-web-api - webapi での属性ルーティングの制限
attributerouting のドキュメントには、「ルートを照合するときのパフォーマンスの向上」が機能しないという一連の警告があります。彼らが話しているのはどのような種類のパフォーマンスの向上であり、それは実稼働ベースのシステムでのパフォーマンスに関して何を意味しますか?実稼働システムで属性ルーティングを考慮しないほど重要ですか?
カスタム ルート ハンドラーとクエリ文字列パラメーターの制約についてもう少し詳しく教えてください。「カスタム」とはどういう意味ですか?クエリ文字列の制約に関しては、データ型に対する制約ですか?
これをもう少し理解し、ユースケースでの影響を測定して、web-api の属性ルーティング パッケージが本番 API に適しているかどうかを判断したいと思います。
c# - クエリ文字列でルートを指定するには?
AttributeRouting
WebAPI プロジェクトに追加しようとしています。
1 つのコントローラーで、現在 3 つの GET メソッドが定義されています。
最初の 2 つのルートは期待どおりに機能していますが、3 番目のルートは常に405 METHOD NOT ALLOWEDを返します。
URL のパラメーターとクエリ文字列を送信しようとしましたが、どちらも同じ応答です。クエリ文字列バージョンを試したとき、ルートを次のように変更しました
dictionaries
また、他の 2 つの GET ルートとのあいまいさを避けるために、最初の単語をtoに変更しようとしましdictionary
たが、まだ成功していません。
AttributeRoutingのドキュメントでは、パラメーターの制約 (WebHost フレームワークのために利用できない) に関連するクエリ文字列についてのみ言及しており、ルーティングでクエリ文字列を使用する方法については言及していません。
これらの 2 つのパラメーターを使用してこの 3 番目のルートを達成する方法を誰か教えてもらえますか、または AttributeRouting を削除するか、独自のコントローラーを試す必要がありますか?
asp.net-web-api - HttpPutAttribute も含めない限り、AttributeRouting.PUTAttribute を使用する場合は 405
WebApi を含めるために更新しようとしている MVC プロジェクトがあります。必要なルートを取得するために、AttributeRouting を使用しています。405 を返す [PUT] を除いて、すべての呼び出しは正しくルーティングされているようです。コントローラーとアクションを単純化しましたが、[HttpPut] も含めない限り、[PUT] でエラーが発生します。何が欠けているのかわからない。
バージョン 3.5.6 の AttributeRouting.Core、AttributeRouting.Core.Http、AttributeRouting.Core.Web、AttributeRouting.WebApi
MVC4
WebDAV がインストールされていません。
asp.net-mvc - GET を使用した MVC AttributeRouting - 405 を返す - メソッドは許可されていません
新しいコントローラー アクション メソッドに取り組んでいるのですが、なぜ 405 が表示されるのか少し混乱しています。
API で既にいくつかの GET 属性付きメソッドを定義しており、それらはすべて期待どおりに機能します。例として、これはうまくいきます:
それでも、私の新しいメソッドは次のように定義されています。
405を返しています
API で routes.axd の URL にアクセスすると、テーブルに次のようなエントリが表示されます。
これはすべて正しいように見えます。クライアント側では、HttpClient を使用して両方のリクエストで同じアプローチを使用しています。
Fiddler から get を実行しても、405 が返されます。
応答の RequestMessage を見ても正しいように見えます。
これには完全に困惑しました。
何がうまくいかないのかを明らかにするために、他に何を試みることができますか?
.net - バックボーン シングル ページ アプリケーションを使用して MVC4 で AntiForgeryToken をテストする方法
[ValidateAntiForgeryToken]
Marionette & Backbone を使用して作成されたシングル ページ アプリケーション (SPA) でMicrosoft の MVC を動作させるのに問題があります。問題は、MVC[ValidateAntiForgeryToken]
メソッドが、JSON の一部として送信するトークンを認識できないことにあるようです。トークンが返信のフォーム部分にある必要があるためだと考えましたが、MrOggy85 はそれは問題ではないと言っています (以下の彼の回答を参照)。
コードはAttributeRoutingを使用する私の API コントローラーにあり、これが問題の原因であると想定しています。典型的なアクションは次のようになります。
他の誰かがこれを克服しましたか?多くのグーグル検索でコメントが投稿されました。「ASP.NET MVC は、AntiForgery クラスと [ValidateAntiForgeryToken] 属性を通じて、偽造防止トークンの組み込みサポートを提供します。現在、この機能は Web API に組み込まれていません。ただし、 (KnockoutJS) テンプレートには、Web API のカスタム実装が含まれています。 ". これは、彼らが自分で書くことを示唆しています。
他の誰かがこれに当たったことがありますか?もしそうなら、どのように解決しましたか? 明らかな何かが欠けていますか、それとも独自の ValidateAntiForgeryToken メソッドを作成する必要がありますか? ご意見をお待ちしております。
アップデート
@MrOggy85 が提供する素晴らしいスタック オーバーフロー リンクには、さらに多くの情報が含まれています。$.ajax を使用して JSON データを投稿するときに AntiForgeryToken を提供するにはどうすればよいですか? を参照してください。. 独自の AntiForgery テストを作成する予定であり、完了したら投稿します。