12

私はasp.net Web APIに取り組んでいます。プロジェクトのデフォルト ルートを global.asax ファイルに設定しようとしています。

localhost:45678/api/Products

しかし、次のようなasp.net mvcルートモデルに似た形式は見つかりませんでした

url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

常にホームページ(HomeController)にリダイレクトされます。私を導いてください。

4

8 に答える 8

12

フォルダ内のRouteConfigクラスを確認してください。App_Start以下で変更できるデフォルトルートが表示されます。

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

編集

あなたのコメントを読んだ後、私は問題があなたのルートにあるのではないと思います。なぜそれをしたいかはわかりませんが、プロジェクトの開始URLを指定するだけです。Webプロジェクトを右クリックし、[プロパティ]をクリックし、[ Web ]タブをクリックします。[アクションの開始]で[URLの開始]を選択し、ボックスに入力http://localhost:45678/api/Productsします。プロジェクトを保存して、再実行してください。新しい場所から開始する必要があります。

于 2012-06-23T19:47:17.983 に答える
4

この問題は、ほとんどの人が陥るよくある間違いかもしれません。

ここでの事実は、System.Web.Routing.RouteTable.Routes使用するフレームワークに関係なく、すべてのルートが collection の下に収集されるということです。したがって、ASP.NET Web API ルートの前に ASP.NET MVC の既定のルートを配置すると、MVC ルートが一致するため、ASP.NET Web API ルートはスキャンされません。

あなたがこれまでに提供したものを見て、これがここに当てはまると思います。そうでない場合は、完全なソリューションをどこかにアップロードしてください。人々は完全に見ることができます。

于 2012-06-23T21:54:49.120 に答える
2

実際、プロパティ->ウェブ->開始場所でデフォルトルートを設定する立場にある場合。次に、global.asax ファイルのルート テーブル、カスタム ルート、RegisterRoutes の必要性は何ですか。私はこのようにしてみました

最初は、

routes.MapHttpRoute(
    name: "Default Api",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

localhost:xxxx/api/products次に、Web APIのデフォルトルートとして作成したいのですが、

routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/Products/{id}",
    defaults: new { controller = "Products", id = RouteParameter.Optional }
);

しかし、何の役にも立たない結果。

于 2012-06-26T00:08:26.010 に答える
0

[編集: 私の答えはケビンのものと同じです]

Visual Studio からプロジェクトを実行すると、ブラウザーでプロジェクトのホームページが開くということですか?

Web API プロジェクト テンプレートには、MVC コントローラーと Web API コントローラーが含まれています。

URI "http://localhost:xxxx/" は MVC コントローラーに送信され、"http://localhost:xxx/api/products" は API コントローラーに送信されます。

Visual Studio でプロジェクトを実行すると、既定で "http://localhost:xxxx" に移動します。通常の操作では、クライアントは必要な URI を要求します。

Project Properties / Web / Start Action で Visual Studio の設定を変更できます。

于 2012-06-24T18:06:37.500 に答える