2

如果我正在构建一个 SPA 应用程序,我只希望所有访问我的服务器的 URL 都转到一个控制器,该控制器将加载我的 index.html 和我的所有 SPA javascript。

这是因为 html5mode 删除了支持历史 API 的浏览器上的哈希值。因此,如果用户要刷新 html5mode SPA URL,那么它会访问服务器......

我对此的解决方案是只创建一个“默认”路由......但我找不到在 RouteCollection 中使这变得容易的方法......

更新: 这是一条可行的路线。有没有更好的方法来做到这一点?有什么理由我不应该这样做?

        routes.MapRoute(
            name: "Default",
            url: "{*things}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
4

1 回答 1

1

除了创建无限数量的路由之外,您还可以使用包罗万象的路由参数将您的实现替换为单个路由定义,例如

{something}/{*parameters}

使用这个包罗万象将在您的 URL 中捕获从这一点开始的所有内容。

于 2013-10-05T19:04:50.053 回答