0

在我的网站上,url 路径中的编码引号 (%22) 导致“路径中的非法字符”错误

我想像这样指定搜索网址:

www.site.com/search/%22维生素+C%22

%22 是一个编码引号"

我正在使用 Asp.Net URL Routing,并且路由是这样指定的:“search/{searchTerm}”

Context["searchTerm"]被检索和解码时,它会导致上面的例子是:“Vitamin+C” [包括引号]

Asp.Net 似乎认为 URL 中有非法字符。我不明白为什么,当我对文本进行 URLEncoding 时。

如何在没有 Asp.Net 抱怨的情况下编码引号? 很多人会使用引号将单词组合在一起,我想允许这种“智能搜索”

4

2 回答 2

1

对于自由格式的搜索词,您应该使用 QueryString 参数而不是 URL 块。如果您有结构化搜索(名称符合有效 URL 要求或按邮政编码搜索的有限类别列表),那么您可以毫无问题地使用您正在使用的 URL 结构。您可以编码并在查询字符串参数中放置任何您想要的内容,包括引号。

于 2009-06-04T22:05:08.127 回答
0

查看HttpServerUtility.UrlEncode 方法

于 2009-06-05T06:02:18.850 回答