0

これは簡単だと思いましたが、何かが足りません。Web APIルートをマッピングしていて、次のようにしたいと思います。

http://localhost:1234/api/myBlog/Articles

そしてこれがうまくいくと思った:

routes.MapRoute(
   name: "BlogApi",                
   url: "api/myBlog/{controller}/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

'myBlog'セグメントは、コントローラーまたはフォルダーではありません。URLの一部にしたいだけです。コントローラを使用してコントローラの下に「myBlog」という名前のフォルダを作成しようとしましたArticlesControllerが、違いはありませんでした。常に404が見つかりません:「myBlog」という名前のコントローラーに一致するタイプが見つかりませんでした。

またhttp://localhost:1234/api/myBlog、ルートのデフォルトのコントローラーがArticles使用されていないので、これについても知りたいと思います。

次のことを行った場合にのみ、機能させることができます。

routes.MapRoute(
   name: "BlogApi",                
   url: "api/Articles/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

と電話:http://localhost:1234/api/Articles

ここで何が欠けていますか?ありがとう!

4

1 に答える 1

2

使用する:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
   name: "BlogApi",                
   routeTemplate: "api/myBlog/Articles/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

デフォルトルートのに置きます。

于 2013-01-11T19:44:24.940 に答える