【问题标题】:slash character ignored when send query string for asp.net发送 asp.net 的查询字符串时忽略斜杠字符
【发布时间】:2011-06-22 16:47:50
【问题描述】:
ResponseHelper.Redirect("popup.aspx?file= "+ LogicLayer.ManualPath + _ddlPLCs.SelectedValue.ToString() + "\\" + _PLCRow[0][0].ToString() ,"_page", "menubar=0,width=100,height=100");

在第二页:

if (Request.QueryString["file"] != null)
        {
            LogicLayer.viewManual(Request.QueryString["file"].ToString());
        }

我发现斜线 (\) 字符已从文件路径中删除

有什么想法吗???

【问题讨论】:

  • 斜线字符被删除:d:\\folder1\\manuals\\pdfs\\file1.pdf >> 变成 d:folder1 manuals pdfs file1.pdf
  • 我认为反斜杠字符对 HTTP URL 无效。您可以将它们更改为%5C。另外,您可能想尝试HttpServerUtility.UrlEncode 功能

标签: asp.net


【解决方案1】:

反斜杠 (\) 在 URL 中是不可接受的。您必须将字符编码为 %HEX 值。在 ASP.Net 中,有一种方法可以对 URL 字符串进行编码,还有一种方法可以对字符串进行解码。

在视图中:

ResponseHelper.Redirect("popup.aspx?file= "+ System.Web.HttpUtility.UrlEncode(LogicLayer.ManualPath + _ddlPLCs.SelectedValue.ToString() + "\\" + _PLCRow[0][0].ToString()) ,"_page", "menubar=0,width=100,height=100");

在代码背后:

if (Request.QueryString["file"] != null)
{
   LogicLayer.viewManual(HttpServerUtility.UrlDecode(Request.QueryString["file"].ToString()));
}

Here's a similar question.

【讨论】:

    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2022-10-22
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多