为什么带有两个连字符(在一个段中)的URL与路由表中的路由不匹配?

时间:2010-04-16 22:41:08

标签: c# asp.net webforms routing url-routing

我正在尝试解决此URL路由:

Route articlesByCategory = new Route("articles/c{cid}-{category}", new Handler);

但是,似乎以下网址无法解析此路线:

// doesn't work
www.site.com/articles/c24-this-is-the-category-title

// This works
www.site.com/articles/c24-category

我认为它与标题中的短划线有关,但是有人能告诉我为什么这样做会这样吗?

有没有办法在标题中允许破折号这样的网址?

1 个答案:

答案 0 :(得分:1)

哪个连字符是分隔符?

服务器不知道您网址中的哪个连字符正在从cid分隔category。这就是它无法运作的原因。您可以通过在类别值中使用除破折号之外的其他内容来解决此问题。 编写一个自定义Route类,它将更灵活地定义。

This answer on Stackoverflow可能会对您有所帮助,因为它可以很容易地用于您的情况......