【问题标题】:C# URL query string parameters not parsing correctly in FireFox or ChromeC# URL 查询字符串参数在 FireFox 或 Chrome 中未正确解析
【发布时间】:2015-07-31 21:41:24
【问题描述】:

我的代码中有一个函数可以在 SSRS 中打开各种报告,它可能需要也可能不需要接受参数。我传递的 URL 和参数如下:

var reportUrl = ConfigurationManager.AppSettings["ReportServerUrl"];
        var reportPathComponents = ConfigurationManager.AppSettings["ReportPath"].Split(';');
        var reportPath = string.Join("&", reportPathComponents);

        return reportUrl + string.Format(reportPath, start.ToShortDateString(), end.ToShortDateString());

可能的输入是:

reportUrl = "http://ssrs14devreports..." ReportPath = "Report;rs:Command=Render;start={0};end={1}"

这在 IE 11 中运行良好,但在最新的 Chrome 和 FireFox 浏览器中,它将“&”编码为“&-amp;”。请原谅“&-amp;”中的 -。

【问题讨论】:

    标签: c# .net asp.net-mvc url


    【解决方案1】:

    不确定是不是问题,但我不会用“+”号连接两个网址,请使用

    Uri uri = new Uri(new Uri(reportUrl), reportPath);
    

    相反...

    检查 url 并确认您没有两个 // 而不是一个...

    【讨论】:

    • 我检查了网址,它确实有两个 //。正如我所说,它在 IE 11 中确实有效。现在是 Chrome 或 FireFox。
    • 你应该只有一个斜线。按照建议使用Uri 应该可以解决问题...
    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多