【问题标题】:URL # issuie c# querystring asp.netURL # issuie c# querystring asp.net
【发布时间】:2015-04-17 08:55:18
【问题描述】:

我正在尝试使用以下内容整理我的查询字符串。地址中有一个井号需要显示例如:

裕廊西 344 座,11 街,#02-111

它存储在变量address 中。我正在尝试使用此代码替换井号:address.Replace("#","%23")

string url = "thankyou.aspx?firstname=" + firstname + "&" + 
"lastname=" + lastname + "&" + "address=" +  address.Replace("#","%23")+ 
 "&" + "total=" + total + "&" + "nric=" + tbID.Text + "&" + "country=" + 
 ddlCountry.SelectedValue + "&" + "orderid=" + orderid + "&"+ 
"postalcode="+tbPostalCode.Text;

但它仍然抛出错误。当我在查询字符串中替换它时它很好并且数据显示很好,所以这不是问题。

【问题讨论】:

  • 我认为你需要类似HttpUtility.UrlEncode Method
  • 我建议您从 url 中删除所有这些数据并使用表单插入
  • 你能发布你得到的异常吗?
  • 为什么将这些数据作为查询字符串传递?您可以尝试其他方式,例如会话,存储在数据库中并传递 ID 并从其他屏幕从数据库获取。
  • 在地址变量上试过了,但没用,我需要在完整的 url 上做吗

标签: c# html


【解决方案1】:

使用Uri.EscapeDataString 对所有查询参数值进行编码:

string url = "thankyou.aspx?firstname=" + Uri.EscapeDataString(firstname)
            + "&lastname="   + Uri.EscapeDataString(lastname)
            + "&address="    + Uri.EscapeDataString(address)
            + "&total="      + Uri.EscapeDataString(total)
            + "&nric="       + Uri.EscapeDataString(tbID.Text)
            + "&country="    + Uri.EscapeDataString(ddlCountry.SelectedValue)
            + "&orderid="    + Uri.EscapeDataString(orderid)
            + "&postalcode=" + Uri.EscapeDataString(tbPostalCode.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多