如果我正在构建一个SPA应用程序,我只想让所有访问我服务器的URL转到一个控制器,该控制器将加载我的index.html和我的所有javascript用于SPA。
这是因为html5mode会删除支持历史记录API的浏览器上的哈希值。因此,如果用户要刷新html5mode SPA URL,那么它就会点击服务器......
我的解决方案就是创建一个"默认" route ...但我找不到一种方法,可以在RouteCollection中轻松实现......
更新 这是一条有效的路线。有没有更好的方法来做到这一点?我不应该这样做吗?
routes.MapRoute(
name: "Default",
url: "{*things}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:1)
您可以使用catch-all路由参数替换单个路由定义,而不是创建无限数量的路由,例如
{something}/{*parameters}
使用此catch-all将从您的URL中捕获所有内容。