2

それはおそらく誤解であるため、それはなぜ質問なのか:(

以下は、ASP.netWebApiプロジェクトのデフォルトのWebAPI構成です。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

変えてみました

api /{コントローラー}/{id}

/{コントローラー}/ {id}

動作していない、野心的な部分は、ホームページにルーティングしているように無視されている( NO 404)ことですが、他の消費は完全に次のように動作しました

- /{コントローラー}/{id}

エンコーディングの問題のミスコンセプトの部分のようです、何か助けはありますか?

4

2 に答える 2

1

「#」記号はブラウザによってブックマークとして解釈され、通常はサーバーに送信されません。Fiddlerなどのツールまたはブラウザーの開発ツール(IEのF12ツールなど)を実行して、実際にサーバーに送信されている要求を確認することをお勧めします。

于 2013-02-14T06:50:51.523 に答える
1

#間違った選択です。この部分はクライアントにのみ関連し、ハッシュの後の部分と等しい名前の要素にスクロールできます

この回答を確認してください: https ://stackoverflow.com/a/967659/1679310

エキス:

...ハッシュ(#を含む文字列)がサーバーに渡されることはないため、恐れていません。これは、ブラウザの動作プロパティにすぎません。ただし、$ _SERVER['REQUEST_URI']変数には残りが含まれます。

したがって、後の部分(を含む)#がサーバーに送信されることはありませんが、ルーティングの一部として使用することはできません

于 2013-02-14T06:51:29.723 に答える