C# 使用asp.net core启用角度路由

C# 使用asp.net core启用角度路由,c#,asp.net,angularjs,asp.net-core,C#,Asp.net,Angularjs,Asp.net Core,我正在尝试构建一个web应用程序,后端使用asp.net核心,前端使用angular 1.5.x。问题在于如何使服务器能够分析角度路由。我将这些代码行添加到startup.cs中,evry thing工作正常: DefaultFilesOptions options = new DefaultFilesOptions(); options.DefaultFileNames.Clear(); options.DefaultFileNames.Add

我正在尝试构建一个web应用程序,后端使用
asp.net核心
,前端使用
angular 1.5.x
。问题在于如何使服务器能够分析角度路由。我将这些代码行添加到
startup.cs
中,evry thing工作正常:

 DefaultFilesOptions options = new DefaultFilesOptions();
            options.DefaultFileNames.Clear();
            options.DefaultFileNames.Add("Index.html");
            app.Use(async (context, next) =>
            {
                await next();

                if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
                {
                    context.Request.Path = "/Index.html";
                    await next();
                }
            })
            .UseCors("AllowAll")
            .UseDefaultFiles(options)
            .UseStaticFiles()
            .UseIdentity()
            .UseMvc();
但是我觉得这不是一个好的做法,这个问题应该在
appsettings.json
中解决。有什么想法吗?

答案(大部分)在UseMVC选项中。。。 您应该实现服务器端路由,如图所示

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

    routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Home", action = "Index" });
});

看看这个

使用JavaScriptServices:它们添加了服务器端NodeJ(包括角度)渲染,并启用了默认路由,将首次调用路由到嵌入SPA的索引/主页/任何页面。所有结论性的电话都由律师处理router@Tseng用appsettings.json文件怎么办?为什么?你不太可能在跑步时改变路线/控制器。Angular Spa只需要一个入口点(这就是名称来自单页应用程序的地方)@Tseng-haw告诉服务器使用入口点?好像你说所有的东西都会自动工作似的!我添加了Microsoft.AspNetCore.NodeServices、Microsoft.AspNetCore.SpaServices和Microsoft.AspNetCore.AngularServices软件包,它工作正常,但我在startup中添加Mvc时有一个例外。csI说(大部分),因为我从未测试过它,但我认为这是一个合理的答案。。。