MVC4. Есть ли способ перенаправить корень на "обычную" необработанную страницу html?

У меня есть приложение MVC4, но я в основном использую его для частей WebAPI. Я хочу, чтобы файл "простой старый HTML" отправился обратно пользователю (который затем будет использовать KnockoutJS или KendoUI, чтобы вытащить JSON из контроллеров webapi).

Я знаю, что могу это сделать:

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

И затем, если я перейду к "localhost/index.html", он успешно вернет мою страницу .html. Тем не менее, я действительно хочу сопоставить "root" путь по умолчанию "localhost/" для возврата моего index.html.

Я пробовал это:

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

но это вызывает ошибку:

Для расширения '.html' не зарегистрирован поставщик сборки. Вы можете зарегистрировать его в <compilation> <buildProviders> в файле machine.config или web.config. Убедитесь, что имеет атрибут BuildProviderAppliesToAttribute, который включает значение "Web" или "Все".

У кого-нибудь есть идеи о том, как я могу это сделать? Я мог бы просто нажать на контроллер по умолчанию, который возвращает обычную страницу html, но кажется, что переполненность проходит через весь стек ASP.NET один раз для HTML-страницы, а затем просто вызывает URL-адрес WebAPI, чтобы вернуться через стек ASP.NET для получения некоторых данных JSON для модели страницы.

Я просто хочу "пропустить" всю сантехнику MVC и отправить IIS html-страницу, как если бы это было не приложение ASP.NET, или, по крайней мере, сделать как можно меньше обработки.

Ответ 1

Добавьте в конфигурацию маршрутизации следующее:

routes.IgnoreRoute("");