.NET 5 和 SPA 路由

.NET 5 and SPA Routing

我目前正在使用 .NET 5 应用程序,该应用程序实现了使用 Vue Router 的 Vue JS 前端。我目前正在使用 SpaStaticFilesExtension 并尝试重新路由到客户端上的页面,但是由于 .NET API 不包含我尝试重新路由到的路由,我遇到了错误。

下面是我的Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "/";
            });
            ...
        }

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            
            app.UseRouting();
            app.UseSpaStaticFiles();
            app.UseAuthorization();

            app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = env.IsDevelopment() ? "/" : "/dist";

                if (env.IsDevelopment()) spa.UseVueCli();
            });
        }

下面是我尝试路由到客户端路由。需要注意的是,我在属性路由的控制器中调用此重定向。此外,这个控制器路由在 Vue 路由器上不存在。

return RedirectToRoute("/some/Route/on/Spa", new routeVales{ routeVal1 = routeVal1 });

下面是我要匹配的客户端代码:

 {
      path: "/some/Route/on/Spa",
      name: "Name",
      component: SomeComponent
 }

谢谢!

RedirectToRoute() 用于重定向到 ASP.Net 内的已知路由。您只想重定向到 URL,这样您就可以使用 Redirect($"/some/Route/on/Spa/{routeVal1}")