我需要将请求作为URL的一部分提交给我的应用程序,其中包含带引号的字符串,例如
/search/"my query"
这会引发错误,如以下问题所述:
How to include quote characters as a route parameter? Getting "Illegal characters in path" message
我想实施Scott Hanselman提出的改变
的建议 <httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,\" />
不包括引号字符的值。但这在.net 3.5中似乎没有任何意义。
有人可以指出如何让它发挥作用吗?
答案 0 :(得分:2)
根据http://forums.asp.net/t/1335994.aspx/1,带有Quote(“或%22)字符的路径无法通过地图路径路由。幸运的是,querystring参数支持引号。
例如,您可以使用查询字符串路径/search/"my query"
而不是使用路径路径/search?query="my query"
进行导航。
或者,如果您真的打算保留地图路径(可能是出于搜索引擎优化的原因),您可以使用类似IIS URL Rewrite扩展名的内容将该路径路由到它的查询字符串对应,而无需用户更明智。