c# - 在 context.Request 中解码查询字符串

标签 c# asp.net .net windows-server-2008

我有一个 ashx 文件,它需要一些查询字符串值来传送适当的图像。

问题是一些搜索引擎 urlencode 然后 htmlencode 这些 url 在他们的缓存中或当他们索引这些时。

例如,而不是获取

/preview.ashx?file=abcd.jpg&root=small

我明白了

/preview.ashx?file=abcd.jpg&root=small

这基本上抛弃了 context.Request.QueryString["root"] 所以它认为没有变量 root

我猜查询字符串中的第二个键是 amp;root 即 & 符号之后的部分。

我想知道是否有一种方法可以在服务器端自动对查询字符串进行 html 和 urldecode,这样程序就不会混淆。

最佳答案

多次调用 HttpUtility.HtmlDecodeHttpUtility.UrlDecode 没有坏处。

string queryString = "/preview.ashx?file=abcd.jpg&root=small";
var parsedString = HttpUtility.HtmlDecode(queryString);
var root = HttpUtility.ParseQueryString(parsedString)["root"];

关于c# - 在 context.Request 中解码查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324735/

相关文章:

.net - 通过 Asp.Net MVC 中的操作提供文件。使用 byte[] 还是 Stream 更好?

c# - GDI+ 在基线上绘制不同大小的文本存在 off-by-1px 问题

c# - C# 代码隐藏如何触发 JavaScript 代码?

c# - ASP.NET Web api 上的文件上传端点损坏文件

c# - 属性为空,即使在代码中设置之后也是如此

c# - 带 Linq 的 BLToolkit——为什么需要 `using` 语句?

c# - 从 React Native 访问 ASP.NET Core 2.1 Web API 时“无法验证 HTTPS 连接”

c# - 在具有 WCF 服务的 C# 服务器中使用穷人的 DI

c# - 以编程方式访问 TFS 历史记录

c# - VS2008 C# 错误 ".ctor' 语言不支持