【问题标题】:How to specify a RouteConfig default route?如何指定 RouteConfig 默认路由?
【发布时间】:2013-10-05 18:57:44
【问题描述】:

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

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

对此我的解决方案是创建一个“默认”路由...但我在 RouteCollection 中找不到让这件事变得简单的方法...

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

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

【问题讨论】:

  • 根据我的理解把路线倒过来,Default 应该是最后一个

标签: asp.net-mvc-4


【解决方案1】:

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

{something}/{*parameters}

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

【讨论】:

  • 谢谢安迪,这个技巧让我尝试只使用 {*something} 作为我测试的所有内容,并且它似乎正在工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2020-10-13
  • 2019-01-21
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
相关资源
最近更新 更多