Angularjs MVC 6使用ui.router捕获所有路由
我正在测试一个新的AspNetCore MVC 6设置,我遇到了一些关于全覆盖路由的问题。服务器已设置为使用“”和“全部捕获”路由。转到“”可以正常工作,但“”失败并出现错误 在_layout.cshtml中设置基本href: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",
文件。写(“”);
在我的启动中使用此选项:
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}";
}
一般来说,应在末尾注册一条“全包”路线,因为这是在所有其他路线都经过之后要运行的最后一条路线。