问题标签 [routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
7900 浏览

url - URL 路由:在创建友好 URL 时处理空格和非法字符

我看过很多关于 URL 路由的讨论,以及很多很棒的建议……但在现实世界中,我没有看到讨论过的一件事是:

  1. 创建带有空格和非法字符的友好 URL
  2. 查询数据库

假设您正在构建一个 Medical 站点,其中包含带有Category和可选Subcategory的文章。(1对许多)。(可以用任何例子,但医学领域有很多长词


示例类别/子/文章结构:

  1. 您的一般健康状况(类别)
    • 自然健康(子类别)
      1. 您身体的免疫系统及其需要帮助的原因。(文章)
      2. 植物和草药真的是解决方案吗?
      3. 我应该吃强化食品吗?
    • 顺势疗法
      1. 什么是顺势疗法药物?
    • 健康饮食
      1. 你应该每天喝10杯咖啡吗?
      2. 有机蔬菜值得吗?
      3. 汉堡王® 是邪恶的吗?
      4. “法式咖啡”还是美式咖啡更健康?
  2. 疾病和状况(类别)
    • 自身免疫性疾病(子类别)
      1. 人类的第一大杀手是某种疾病
      2. 如何获得帮助
    • 遗传条件
      1. 怀孕前预防脊柱裂。
      2. 你有长寿的倾向吗?
  3. FooBar博士的个人建议(分类)
    1. 我对草药和自然疗法的看法(文章 - 无子类别)
    2. 为什么要关心自己的健康?
    3. 有可能吃得好并有良好的饮食习惯。
    4. 无血手术已经成熟了吗?

在这样的结构中,如果你去的话,你将有一些LOOONG URL:/{Category}/{subcategory}/{Article Title}

此外,还有许多非法字符,如#! ? 'é”等。

所以,问题是:

  1. 您将如何处理非法字符和空格?(优点和缺点?)
  2. 你会处理从数据库中获取这个吗
    • 换句话说,您会相信数据库找到项目、传递标题,还是提取所有标题并在代码中找到密钥以获取传递给数据库的密钥(对数据库的两次调用)?

注意:我总是看到漂亮漂亮的例子,比如 /products/beverages/Short-Product-Name/ 如何处理一些丑陋的例子 ^_^

0 投票
10 回答
77451 浏览

asp.net-mvc - 是否可以基于子域创建 ASP.NET MVC 路由?

是否可以有一个使用子域信息来确定其路由的 ASP.NET MVC 路由?例如:

  • user1 .domain.com去一个地方
  • user2 .domain.com转到另一个?

username或者,我可以让它们都使用参数进入同一个控制器/动作吗?

0 投票
3 回答
5667 浏览

c# - 在 Web 表单中使用 URL 路由生成 URL

我知道在 MVC 框架中,你有 Html 类来创建 URL:

但是如果你想在 Webforms 中生成 Urls 怎么办?

关于使用 Webforms 生成 URL 的详细信息,我还没有找到一个非常好的资源。

例如,如果我生成这样的路线:

我将如何使用路由表数据生成 URL。

如何根据我的路由生成 URL?

例如。/ca/en/articles/123/Article-Title 没有

0 投票
5 回答
3294 浏览

asp.net-mvc - ASP.NET MVC - .mvc 路由在 II6 中失败

我一直在试图在 IIS6 上部署我的 MVC 应用程序(链接问题

我暂时放弃了通配符映射,并试图让 .mvc 扩展工作。IIS 中的所有内容都已正确配置,并且 .mvc 扩展名指向所有动词类型​​的 .NET dll(未选中验证是否存在选项)。

每次我提出请求时,我得到的只是 .NET 404 页面。/Home.mvc 和 /Home.mvc/Index 都返回该页面。

我没有对默认的 Web.config 进行任何更改,并且我的所有路由都配置了无扩展和基于扩展的等效项。

我很欣赏这个配置对于​​每个阅读它的人来说是多么容易(声音),但我向你保证我没有做任何不同的事情,我的不会工作。我什至尝试使用 IIS6 将它部署在不同的服务器上,同样的问题也发生在那里。

是否还有其他原因导致路由模块/处理程序完全丢失请求并使其陷入标准的 .NET 404 错误?奇怪的权限?

对于 IIS 404 错误,我更新了自定义错误设置,使其在站点路径中调用 Default.aspx 页面。这是 Visual Studio 中生成的 MVC beta 模板的默认页面,它在后面的代码中执行以下操作:

这只是给了我上一篇文章中的错误:

0 投票
4 回答
721 浏览

asp.net - 将 url 翻译成路由

我觉得我在这里重新发明了轮子,但我需要找到一种方法从一个包罗万象的 URL 中获取 URL,并将其重定向到另一条路线。

这样做的原因是因为我需要做一些事情,比如为某些 url 添加会话 cookie,然后将它们传递给他们的相关操作。

实现这一点的最佳方法是什么?

提前感谢您的帮助!

0 投票
1 回答
622 浏览

ruby-on-rails - 模型中的自定义 Ruby 路由

好的,这两个相关的问题是参考Railscast #21

我遇到了一些路线问题。两个问题:

1)教程中的路由似乎是相对于应用程序的根目录的;我希望它们相对于模型的根。所以

" http://example.com/login" 我必须是 " http://example.com/model/login" (注销时反之亦然)。

我正在使用永久链接来引用我的记录,但我不知道如何指定覆盖,因为每次我尝试使用“ http://example.com/model/login”时都会收到一个错误,提示找不到“登录”记录。如何覆盖此登录/注销?

2) 为我选择自定义路线似乎并没有将自定义路线保留在我的地址栏中。所以去“ http://example.com/login”让我到正确的页面,但浏览器现在http://example.com/session/new在地址栏中显示“”。在本教程中,这不会发生:应用程序提供正确的页面并将自定义路由保留在地址栏中。我怎样才能让这发生在我身上?

0 投票
6 回答
10491 浏览

.net - .net 中带点的语义 url

我正在尝试为搜索页面制作语义 url,但如果有人使用点中完成的搜索,.net 引擎会返回 404。

该请求甚至没有到达路由引擎,所以我认为它与安全或类似的东西有关。

例如,stackoverflow 路由在这些情况下也不起作用: https://stackoverflow.com/questions/tagged/etc

0 投票
2 回答
2166 浏览

asp.net-mvc - 在路由定义中间使用贪婪路由参数

我正在尝试创建遵循树导航系统结构的路线,即我想在我的路线中包含树中的整个路径。所以如果我有一棵看起来像这样的树

  • 电脑
    • 软件
      • 发展
      • 图形
    • 硬件
      • 中央处理器
      • 显卡

然后我希望能够拥有看起来像这样的路线

  • site.com/catalog/computers/software/graphics

这本身并不难,可以通过看起来像这样的路线捕获

  • 目录/{*类别}

但是我希望能够在该 URL 的末尾添加产品信息,就像这样

  • site.com/catalog/computers/software/graphics/title=Photoshop

这意味着我会要求像以下示例一样定义的路线

  • site.com/{*categories}/title={name}
  • site.com/{*categories}

然而,这些路线中的第一个是无效的,因为在诸如 {*categories} 之类的贪婪参数之后不会出现其他任何东西,所以我有点卡住了。我一直在考虑实现正则表达式路由,或者可能使用 IRouteContraint 来解决这个问题,但我想不出一个体面的解决方案,让我也可以使用Html.ActionLink(...)方法生成出站 URL填写了 {*categories} 和 {name}

非常感谢任何建议!

你们中的一些人可能昨天看到了我提出的类似问题,但我已将其删除,因为此后我对其进行了更多思考,并且旧问题包含对我的问题的不完整描述

更新 2008/11/26我在http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html发布了解决方案

0 投票
1 回答
929 浏览

ruby-on-rails - Rails 中没有命名空间的路由(2.2)

与此处提出的问题有关——rails 资源路由中的默认段名称

在尝试生成没有命名空间前缀的资源时遇到问题(即 /:apple_id/oranges/)。使用插件给了我 //:apple_id/oranges?

有更简单的方法吗?也许是2.2的问题?

0 投票
2 回答
2805 浏览

asp.net-mvc - Asp.Net Mvc Route Constraints 能否抛出 404 而不是 InvalidOperationException?

我正在尝试在 Asp.Net MVC 应用程序中使用路由约束。

当我输入 ~/MyAction/aString 之类的 url 时,会显示 YSOD 并带有无效操作异常。我该怎么做才能将无效的 url 重定向到 404 页面?

我知道我可以使用控制器操作和 int.TryParse 中的字符串参数来解决问题,但是路由约束是无用的。

如何选择路由约束抛出的异常类型?