我正在试用 John Papa 的新热毛巾模板。它真的很漂亮,但我在让它与我习惯的 Web API 配合使用时遇到了一些困难。
我能够解决路由问题,但我仍然无法让Microsoft.AspNet.WebApi.HelpPage包工作。
这是我所做的:
- 安装热毛巾 VSIX。
- 新的 ASP.NET MVC4 项目 - 热毛巾 SPA 模板
- 构建,运行 - 工作。
- 右键单击
Controllers
文件夹,添加名为TestController
. - 选择“空 API 控制器”模板。
在 TestController 中编写以下操作:
public IEnumerable<string> GetTestData() { return new[] { "A", "B", "C" }; }
构建,运行。
- 尝试 URL
/api/test
获取错误 404The resource cannot be found.
- 试试网址
/api/test/gettestdata
。作品。
然后我注意到BreezeWebApiConfig.cs
已经改变了默认的api路由,并且需要{action},所以我添加了默认的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 模板的情况下解决此错误的正确方法是什么?
这些中的任何一个都应该被视为错误吗?