Angularjs MVC 6使用ui.router捕获所有路由

Angularjs MVC 6使用ui.router捕获所有路由,angularjs,angular-ui-router,asp.net-core-mvc,Angularjs,Angular Ui Router,Asp.net Core Mvc,我正在测试一个新的AspNetCore MVC 6设置,我遇到了一些关于全覆盖路由的问题。服务器已设置为使用“”和“全部捕获”路由。转到“”可以正常工作,但“”失败并出现错误 在_layout.cshtml中设置基本href: 文件。写(“”); 在我的启动中使用此选项: app.UseMvc(routes => { routes.MapRoute( name: "catchall",

我正在测试一个新的AspNetCore MVC 6设置,我遇到了一些关于全覆盖路由的问题。服务器已设置为使用“”和“全部捕获”路由。转到“”可以正常工作,但“”失败并出现错误

在_layout.cshtml中设置基本href:

文件。写(“”);

在我的启动中使用此选项:

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "catchall",
                template: "{*url}",
                defaults: new { controller = "Home", action = "Index" });
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
这在我的路由中。ts:

module app {
export class RoutingConfig {
    static $inject = ["$locationProvider", "$stateProvider", "$urlRouterProvider"];
    private ViewLocation: string = "assets/views/";

    constructor(private $locationProvider: ng.ILocationProvider,
        private $stateProvider: ng.ui.IStateProvider,
        private $urlRouterProvider: ng.ui.IUrlRouterProvider
    ) {

        $urlRouterProvider.otherwise("/");
        $locationProvider.html5Mode(true);

        $stateProvider.state("home", <ng.ui.IState>{
            cache: false,
            url: "/",
            templateUrl: this.ViewLocation + "home/home.html",
            controller: HomeController.ControllerId,
            controllerAs: "vm"
        });
    }
}

angular.module("app").config(RoutingConfig);
}
模块应用程序{
导出类RoutingConfig{
静态$inject=[“$locationProvider”、“$stateProvider”、“$urlRouterProvider”];
私有视图位置:string=“资产/视图/”;
构造函数(私有$locationProvider:ng.ILocationProvider,
私有$stateProvider:ng.ui.IStateProvider,
私有$urlRouterProvider:ng.ui.IUrlRouterProvider
) {
$urlRouterProvider。否则(“/”);
$locationProvider.html5Mode(true);
$stateProvider.state(“主页”{
cache:false,
网址:“/”,
templateUrl:this.ViewLocation+“home/home.html”,
控制器:HomeController.ControllerId,
控制器:“虚拟机”
});
}
}
角度.module(“app”).config(路由配置);
}

我无法重现您在修复以下路径后看到的内容:

路线:

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

            routes.MapRoute(
                name: "catchall",
                template: "{*url}",
                defaults: new { controller = "Home", action = "CatchAll" });
        });
行动:

public string CatchAll(string url)
{
    return $"CatchAll:{url}";
}

一般来说,应在末尾注册一条“全包”路线,因为这是在所有其他路线都经过之后要运行的最后一条路线。