如何在asp.net中生成静态URL文件

时间:2010-01-07 02:28:50

标签: asp.net vb.net

我想基于一些参数生成静态URL。 提供下载文件的页面名为CertificateDownload.aspx,我在Report.aspx中生成下载链接。这两个文件位于同一物理文件夹中。我不喜欢替换方法,但我想不出另一种方式这样做。 如何改进我的代码或更好的方法。

我需要绝对网址在网络浏览器中显示为文字。

Dim downLoadUrl As String = HttpContext.Current.Request.Url.ToString.Replace("Report.aspx", "CertificateDownload.aspx") + "?CertificateID=" + CertificateName

HyperLinkDownloadLink.Visible = True
HyperLinkDownloadLink.Text = downLoadUrl
HyperLinkDownloadLink.NavigateUrl = downLoadUrl

HyperLinkDownloadLink.Visible = True HyperLinkDownloadLink.Text = downLoadUrl HyperLinkDownloadLink.NavigateUrl = downLoadUrl

3 个答案:

答案 0 :(得分:1)

你可以用UriBuilder干净利落地完成。有些人可能会说它太过分了,但它使代码的意图非常清晰,编程和维护更容易,并且更不容易出错。

    var uriBuilder = new UriBuilder(HttpContext.Current.Request.Url);
    uriBuilder.Path = Path.GetDirectoryName(uriBuilder.Path) + "/CertificateDownload.aspx";
    uriBuilder.Query = "CertificateID=" + CertificateName;
    var downloadUrl = uriBuilder.ToString();

答案 1 :(得分:0)

使用相对网址有什么问题?

downLoadUrl = "CertificateDownload.aspx?CertificateID=" + CertificateName

更简单。

答案 2 :(得分:0)

Request.MapPath(string.format("CertificateDownload.aspx?CertificateID={0}", CertificateName))