在两个asp.net应用程序之间创建下载链接

时间:2014-01-17 06:46:08

标签: asp.net download

假设我有两个申请:
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设置的。

有人可以解释一下如何解决这个问题吗?

由于

1 个答案:

答案 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. ";

我希望这可以解决你的问题。