0

我在 webforms 应用程序中使用 asp.net 路由,我需要将新 url 和旧 url 映射到同一路由。

本地主机/博客/?金融素养效率

本地主机/博客/金融扫盲效率

旧 url 在查询字符串前面有一个问号,并且路由 /{slug} 没有选择它。

我试过这样的事情没有运气

  routes.MapPageRoute("blog-slug", _
                      "blog/?{slug}", _
                      "~/blogArticles/Default.aspx")

这可能吗?提前致谢。

4

1 回答 1

0

默认情况下,路由不会接受 ? 之后的任何内容。作为被路由到的页面的一部分,因为根据定义?将查询字符串与 URL 中的资源分开。一种可能有效的方法是

routes.MapPageRoute("blog-slug", _
                    "blog/", _
                    "~/blogArticles/Default.aspx")

但是“金融素养-效率”值将成为关键,因为它是 ?x 而不是 ?slug=x。但是,由于这是旧版 url,因此可能已经存在您的代码的某些部分,用于检查查询字符串中的键而不是值,因为大多数动态 Web 表单旧版 url 看起来像

blog/?slug=x

然后他们检查 Request.Querystring["slug"]。如果这给您带来麻烦,您需要在问题中提供更多信息。

于 2013-06-25T20:14:52.663 回答