問題:
などの特殊文字を含む URL を使用してリソースにアクセスしようとしていますパス セグメントにドット (`.') があると、「HTTP エラー 404.0 - 見つかりません」が発生します。エラー。
構成:
質問で提供されたサンプル コントローラーと WebApiConfig:
// PeopleController.cs public class PeopleController : ApiController { // ... } // WebApiConfig.cs public static void Register(HttpConfiguration config) { // ... config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
解決策:
パス セグメントにドットなどの特殊文字を許可するには、WebApiConfig ルートを次のように変更します。
config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}/{*path}", defaults: new { id = RouteParameter.Optional, path = RouteParameter.Optional } );
このルート テンプレートは、ドットなどの特殊文字を含む残りのパス セグメントをキャプチャする {*path} という名前のキャッチオール ルート パラメータを追加します。
例:
http://somedomain.com/api/people/staff.33311/
URL の末尾にスラッシュ (/) を追加すると、リクエストをルーティングできます。パスセグメントを処理するコントローラーアクション、この場合はstaff.33311.
以上がASP.NET Web API 2 ルーティングで特殊文字を含む URL を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。