如何将查询字符串变量填充到包含&,\和$的文本框中

时间:2011-11-28 19:03:52

标签: request.querystring querystringparameter

我有一个像A= drug & medicare $12/$15这样的变量。

我需要将其分配到文本框,但只有“药物”会在服务器上发布。其余数据被截断。

this.textbox.text= request.querystring["A"].tostring();

3 个答案:

答案 0 :(得分:0)

我相信你有HTML实体的问题。您需要在您选择的工具中阅读HTML转义。 &不能代表HTML,因为它开始实体序列 - 需要将其替换为&。如果没有至少指定您正在使用的工具链(根据@ Richard的评论),我们无法真正建议最好的方法。

编辑:现在我重新阅读了您的问题,似乎A不是变量而是查询参数:)阅读理解失败。无论如何,在这种情况下存在类似的问题:&不是查询参数的有效字符,它需要URL转义。同样,究竟如何做到这一点是在你的工具链的文档中,但实质上是&需要由%26替换。也不允许加号(或者说它有另一种含义);其他人是可以容忍的(但有更好的方式来写它们)。

答案 1 :(得分:0)

以下内容对于a =“foo& bar $ 12”无效:

http://example.com?a=foo&bar$12

& symbol是保留字符,它分隔查询字符串变量。在将值发送到该页面之前,您需要对值进行百分比编码。

另外&是HTML / XML中的保留字符。我建议阅读百分比编码和html编码。

答案 2 :(得分:0)

这看起来或多或少像ASP.NET伪代码,因此我将诊断您的问题作为需要进行URL编码的查询字符串。查询字符串中的键/值对由&符号(&)分隔,ASP.NET(以及其他Web平台)会自动为您解析键值对。

在这种情况下,&符号终止“A = ...”键/值对的值。如果您可以对将用户引入页面的链接进行URL编码,则问题将得到解决。如果实际使用ASP.NET,则可以使用HttpUtility.UrlEncode() method

string myValue = Server.UrlEncode("drug & medicare $12/$15");

你最终会得到这个查询字符串:A =药物%20%26%20medicare%20%2412%2F%2415