У меня есть приложение 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, или, по крайней мере, сделать как можно меньше обработки.