【发布时间】:2017-01-01 02:10:42
【问题描述】:
我有一个用 JavaScript 编写的单页应用程序,我使用 HTML5 历史 API 来处理客户端的 URL。这意味着发送到服务器的任何 URL 都应该导致服务器呈现相同的页面。
在 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 中的等效代码吗?
【问题讨论】:
标签: asp.net asp.net-core asp.net-mvc-routing asp.net-core-mvc