我有一個使用JavaScript編寫的單頁面應用程序,我使用HTML5歷史API來處理客戶端的URL。這意味着發送到服務器的任何URL都應該使服務器呈現相同的頁面。ASP.NET Core中的單頁面應用程序路由
在ASP.NET MVC 5我寫了這個代碼來做到這一點:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
// ...
routes.Add(new Route("{*path}", new MyRouteHandler()));
}
}
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return WebPageHttpHandler.CreateFromVirtualPath("~/index.cshtml");
}
}
這個工作非常出色。無論服務器獲取什麼URL,都會呈現index.cshtml。請注意,我可以使用.cshtml文件(而不是.html文件),這意味着我可以使用一些C#代碼動態更改包含的.js腳本,將版本號附加到.css文件等等。更重要的是,我不需要實現控制器和視圖等來呈現這個.cshtml文件。
現在我們來回答這個問題:您如何在ASP.NET Core中執行此操作?我一直在閱讀文檔,但是我沒有看到如何在不添加控制器類,查看文件夾和其他rigmarole的情況下呈現.cshtml文件。
任何人都知道ASP.NET Core中的等效代碼?
新年快樂http://stackoverflow.com/questions/40358179/use-asp-net-core-without-mvc – ergen