在ASP.NET MVC中调试时,我没有看到以下区别:
http://mysite.com?q=hi,bye
和
http://mysite.com?q=hi%2Cbye
查询字符串参数“q”的值始终为“hi,bye”。
那么为什么逗号编码?
我想做这样的事情https://stackoverflow.com/a/752109/173957。
我有这样的形式:
<form method="GET" action="/Search"> <input type="hidden" name="q" value="hi,bye"/> <input type="submit" value="ok"/> </form>
如何防止此值被编码?
解决方法
URI规范
RFC 3986指定URI路径组件不包含未编码的保留字符,逗号是保留字符之一。对于逗号之类的子逗号,使其未编码会使角色在URI方案中被视为分隔符语法。百分比编码保证字符将作为数据传递。