JohnPapaの新しいホットタオルテンプレートを試しています。本当に洗練されていますが、WebAPIで慣れているものと連携させるのに苦労しています。
ルーティングの問題を回避することはできましたが、それでもMicrosoft.AspNet.WebApi.HelpPageパッケージを機能させることができません。
これが私がしたことです:
- ホットタオルVSIXをインストールします。
- 新しいASP.NETMVC4プロジェクト-ホットタオルSPAテンプレート
- ビルド、実行-動作します。
- フォルダを右クリックし、。
Controllers
という名前のコントローラを追加しますTestController
。 - 「空のAPIコントローラー」テンプレートを選択します。
TestControllerに次のアクションを記述します。
public IEnumerable<string> GetTestData() { return new[] { "A", "B", "C" }; }
ビルド、実行。
- URLを試す
/api/test
エラー404を取得The resource cannot be found.
- URLを試してください
/api/test/gettestdata
。動作します。
次に、デフォルトのAPIルートが変更され、{action}が必要であることに気付いたBreezeWebApiConfig.cs
ので、デフォルトのAPIルートを次の場所に追加し直しました。
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
今、私がURLを試してみると/api/test
、それは機能します。
ここで、ヘルプパッケージを使用したいと思います。
Microsoft.AspNet.WebApi.HelpPage
nugetパッケージを追加します。AreaRegistration.RegisterAllAreas();
に追加Global.asax.cs
- ビルド、実行。
URL/Help
にアクセスしようとすると、次のエラーが発生します。
System.InvalidOperationException: The view 'Index' or its master was not found
or no view engine supports the searched locations.
The following locations were searched:
~/Views/Help/Index.aspx
~/Views/Help/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Help/Index.cshtml
~/Views/Help/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
HotTowelテンプレートを壊さずにこのエラーを解決する正しい方法は何ですか?
これらのいずれかをバグと見なす必要がありますか?