[解決済み] MVC Web API 2 で api/people/STAFF.45287 などのリクエストにドット文字「.
質問
私が動作させようとしているURLは、次のようなスタイルのものです。 http://somedomain.com/api/people/staff.33311 (ちょうど LAST.FM のようなサイトが RESTFul & WebPage の URL にあらゆる種類の記号を許可しているように、例えば " http://www.last.fm/artist/psy'aviah "はLAST.FMの有効なURLです)。
動作するのは以下のシナリオです。 - http://somedomain.com/api/people/ - これはすべての人を返します。 - http://somedomain.com/api/people/staff33311 - も同様に動作しますが、これは私が求めているものではありません。 私はURLは、以下の例のように、"ドット"を受け入れるようにしたいと思います。 - http://somedomain.com/api/people/staff.33311 - しかし、これは私に
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
以下のように設定しました。
-
コントローラ "PeopleController"。
public IEnumerable<Person> GetAllPeople() { return _people; } public IHttpActionResult GetPerson(string id) { var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower())); if (person == null) return NotFound(); return Ok(person); }
-
WebApiConfig.csは
public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
私はすでにこのブログ記事のすべてのヒントに従って試してみました。 http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx を試してみましたが、まだうまくいきません...。また、かなり面倒だと思うので、もっと良い、安全な他の方法はないのでしょうか。
私たちは内部的にこのように ID を持っているので、何らかの方法でドットに適合するソリューションを見つけなければなりません。できれば "." のスタイルで、しかし必要であれば、URL の代替案も受け付けます...
どのように解決するのですか?
以下の設定を
web.config
ファイルに以下の設定をすることで、問題を解決できるはずです。
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み】ASP.NET Web APIのJWT認証について
-
[解決済み】Web Apiでリクエストに一致するアクションが複数見つかった。
-
[解決済み] 既存のASP.NET MVC (5) WebアプリケーションプロジェクトにWeb APIを追加する方法は?
-
[解決済み] MVC 5 プロジェクトと Web Api プロジェクトの違い
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] 関数を終了するには?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] <modules runAllManagedModulesForAllRequests="true" /> 意味
-
[解決済み】POSTを使うときとGETを使うときってどんなとき?
-
[解決済み】ASP.NET mvcとIISでURLのドットが原因で404になる
-
[解決済み] WebAPI 2 の DefaultInlineConstraintResolver エラー
-
[解決済み] ASP.NET MVCによる複数パラメータを用いたルーティング