如何在 ASP.NET Core Razor Pages 中为单页应用程序创建包罗万象的路由?

How do I create a catch-all route for single page apps in ASP.NET Core Razor Pages?

对于单页应用程序,我们希望能够将所有未处理的请求路由到索引,以便处理客户端路由。

以前,我们会使用 MapRoute() 添加路由,详见 ,但是,当使用 Razor 页面作为我们的索引时,这似乎不起作用。

我们如何创建 Razor Pages 索引的回退?

为此,请将路由添加到 Razor Pages 选项,如下所示:

services.AddMvc()
    .AddRazorPagesOptions(options =>
    {
        // Match all routes to the index so we can handle routing client-side.
        options.Conventions.AddPageRoute("/index", "{*url}");
    })

然后确保照常配置静态文件服务:

app.UseStaticFiles();
app.UseMvc(routes => {
    routes.MapRoute(
        "default", 
        "{controller=Home}/{action=Index}/{id?}");
});