MVC4 - 有没有办法将根路由到"正常"未处理的html页面?

Cod*_*ike 10 .net asp.net routes asp.net-mvc-4 knockout.js

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

我知道我可以这样做:

routes.IgnoreRoute("{page}.html");
Run Code Online (Sandbox Code Playgroud)

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

我试过这个:

routes.MapPageRoute("root", "", "~/index.html");
Run Code Online (Sandbox Code Playgroud)

但是这会引发错误:

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

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

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

Jon*_*mer 12

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

routes.IgnoreRoute("");
Run Code Online (Sandbox Code Playgroud)