Asp.net
MVC4 - 有沒有辦法將根路由到“正常”未處理的 html 頁面?
我有一個 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 應用程序一樣,或者至少做盡可能少的處理。
將以下內容添加到您的路由配置中:
routes.IgnoreRoute("");