10

我有一个 MVC4 应用程序,但我主要将它用于 WebAPI 部分。我希望将“普通的旧 HTML”文件发送回用户(然后使用 KnockoutJS 或 KendoUI 从 webapi 控制器中提取 JSON)。

我知道我可以这样做:

routes.IgnoreRoute("{page}.html");

然后,如果我浏览到“localhost/index.html”,它会成功返回我的 .html 页面。但是,我真的想映射“root”默认路径“localhost/”来返回我的 index.html。

我试过这个:

routes.MapPageRoute("root", "", "~/index.html");

但这会引发错误:

没有为扩展“.html”注册构建提供程序。您可以在 machine.config 或 web.config 的 <compilation><buildProviders> 部分中注册一个。确保它具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 属性。

有人对我如何使这项工作有任何想法吗?我可以只点击一个返回纯 html 页面的默认控制器,但是为 HTML 页面遍历整个 ASP.NET 堆栈似乎有点过头了,然后它只调用一个 WebAPI URL 来返回 ASP.NET 堆栈获取页面模型的一些 JSON 数据。

我基本上只是想“跳过”所有 MVC 管道并让 IIS 将 html 页面发回给我,就好像它不是 ASP.NET 应用程序一样,或者至少做尽可能少的处理。

4

1 回答 1

12

将以下内容添加到您的路由配置中:

routes.IgnoreRoute("");
于 2012-09-14T03:17:29.460 回答