如何在不抱怨 Asp.Net 的情况下对引号进行编码?
在我的网站上,网址路径中的编码引号 (%22) 会导致“路径中的非法字符”错误
我想指定搜索网址,如下所示:
www.site.com/search/%22Vitamin+C%22
%22 是一个编码引号 "
我正在使用 Asp.Net URL 路由,并且路由是这样指定的:"search/{searchTerm}"
当 < code>Context["searchTerm"] 被检索并解码,这将导致上面的示例为: "Vitamin+C" [包括引号]
看来 Asp.Net 认为当我对文本进行 URL 编码时,我不明白为什么会出现这样的情况:
如何在不抱怨 Asp.Net 的情况下对引号进行编码? 许多人会使用引号。将单词组合在一起,我想允许这种“智能搜索”
On my site, an encoded quote (%22) in url path causes "Illegal characters in path" error
I want specify search URLs like so:
www.site.com/search/%22Vitamin+C%22
%22 is an encoded quotation mark "
I'm using a Asp.Net URL Routing and the route is specified like this: "search/{searchTerm}"
When Context["searchTerm"]
is retrieved and Decoded, it would result in the above example being: "Vitamin+C" [including quotes]
It would seem that Asp.Net thinks that the there are illegal characters in the URL. I don't understand why, when I AM URLEncoding the text.
How can I encode Quotation marks without Asp.Net complaining? Many people will use quotation marks to group words together and I want to allow this "smart searching"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于自由格式的搜索词,您应该使用 QueryString 参数而不是 URL 块。 如果您有结构化搜索(名称符合有效 URL 要求的有限类别列表或按邮政编码搜索),那么您可以毫无问题地使用您正在使用的 URL 结构。 您可以在查询字符串参数中编码并放置您想要的任何内容,包括引号。
For free-form search terms, you should use a QueryString parameter instead of a URL chunk. If you have structured searches (a limited list of categories with names that conform to valid URL requirements or search by zip codes) then you could use the URL structure you are using without issue. You can encode and put whatever you want, including quotes, in the querystring parameter.
查看 HttpServerUtility.UrlEncode 方法
Check out the HttpServerUtility.UrlEncode Method