Asp.net mvc routing asp.net mvc6/angular2路由

Asp.net mvc routing asp.net mvc6/angular2路由,asp.net-mvc-routing,angular2-routing,Asp.net Mvc Routing,Angular2 Routing,我有一个asp.NETMVC6项目。在客户端,我想使用angular2创建单页应用程序。这意味着我有两个地方可以定义路由。 就SPA而言,路由必须在angular2端,但当用户刷新页面时如何处理?MVC返回404 一种方法是在mvc6中设置启动路由: routes.MapRoute( name: "spa-fallback", template: "{*url}", defaults: new { controller =

我有一个asp.NETMVC6项目。在客户端,我想使用angular2创建单页应用程序。这意味着我有两个地方可以定义路由。 就SPA而言,路由必须在angular2端,但当用户刷新页面时如何处理?MVC返回404

一种方法是在mvc6中设置启动路由:

 routes.MapRoute(
            name: "spa-fallback",
            template: "{*url}",
            defaults: new { controller = "OAuth", action = "Index" });
        });
然后控制器向angular2发出请求。路径

但是,此{*url}无法识别*.map和其他静态文件。 也可能有场景,我想使用静态页面,如Error.html等


有没有更好的方法来处理服务器/客户端的路由问题?

我也面临同样的问题,决定使用视图而不是静态文件

我已经用一个主控制器设置了MVC,它有两个操作:索引和登录

该应用程序在index.cshtml中启动,login.cshtml是一个简单的登录页面

my startup.cs文件中的路由配置如下:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "login",
                template: "login",
                defaults: new { controller = "Home", action = "Login" });
            routes.MapRoute(
                 name: "spa-fallback",
                 template: "{*url}",
                 defaults: new { controller = "Home", action = "Index" });
        });
在我的AppComponent中,我有(使用角度RC1):

在中刷新页面将使我保持在仪表板视图上,而将我重定向到登录页面,使我脱离应用程序)


希望这有帮助

是的,这里也介绍了这一方法:
@Routes([
    { path: '/Dashboard', component: Dashboard}
])