假设我有两个申请:
www.test.com/a
www.test.com/b
在网站b中,我有一个页面设置来下载pdf文件。该页面名为OpenBook.aspx,当我在查询字符串中传递bookId时,它会下载相关文件。
以下是通过点击链接从网站b下载此文件的代码:
lbl.Text =“报告书{0}
已完成并准备好查看。 “;
现在这可以在站点B中运行,但它显然在A中不起作用。因为路径设置为www.test.com/a/Processing/OpenReportBook.aspx .....
我尝试使用以下内容:
string downloadLocation = HttpContext.Current.Request.Url.Host.ToString() + "/DataCenter/Processing/OpenReportBook.aspx?ReportID=";
Label2.Text = "Report book <a href='" + downloadLocation +
+ 948 +
"'>{0}</a> is completed and ready for view. ";
但是,当你从网站A点击它时,路径是相对于网站A设置的。
有人可以解释一下如何解决这个问题吗?
由于
答案 0 :(得分:2)
不要使用HttpContext.Current.Request.Url.Host.ToString()
。
而是在web.config中提供第二个URL,如下所示
<appSettings>
<add key="downloadurl" value="http://www.test.com/b" />
</appsetings>
在.cs文件中替换以下代码
string downloadLocation = HttpContext.Current.Request.Url.Host.ToString() + "/DataCenter/Processing/OpenReportBook.aspx?ReportID=";
Label2.Text = "Report book <a href='" + downloadLocation +
+ 948 +
"'>{0}</a> is completed and ready for view. ";
与
string downloadLocation = ConfigurationManager.AppSettings[downloadurl"].ToString() + "/DataCenter/Processing/OpenReportBook.aspx?ReportID=";
Label2.Text = "Report book <a href='" + downloadLocation +
+ 948 +
"'>{0}</a> is completed and ready for view. ";
我希望这可以解决你的问题。