我在webforms应用程序中使用asp.net路由,我需要将新的url和旧的url映射到相同的路由。
localhost/blog/?财经-知识-功效
localhost/blog/财经知识-效率
旧版url的查询字符串前面有一个问号,路由/{slug}没有将其提取出来。
我试过这样的东西,但没有成功。
routes.MapPageRoute("blog-slug", _
"blog/?{slug}", _
"~/blogArticles/Default.aspx")这个是可能的吗?提前谢谢。
发布于 2013-06-26 04:14:53
默认情况下,路由不会接受?作为被路由到的页面的一部分,因为根据定义?将查询字符串与URL中的资源分开。一种可行的方法是
routes.MapPageRoute("blog-slug", _
"blog/", _
"~/blogArticles/Default.aspx")但是,由于它是?x而不是?slug=x,因此“financial- already efficacy”值将成为关键字。但是,由于这是遗留url,因此可能已经存在用于检查查询字符串中的键的代码的某些部分,而不是值,因为大多数动态key表单遗留url看起来像这样
blog/?slug=x然后他们检查Request.Querystring"slug“。如果这给你带来麻烦,你需要在你的问题中提供更多的信息。
https://stackoverflow.com/questions/17306357
复制相似问题