如何在链接中动态生成根文件夹

时间:2011-12-14 20:12:33

标签: asp.net mailto

我正在尝试在mailto超链接正文中的网址中动态生成根文件夹。通常我可以使用page.resolveurl()来执行此操作,但我不确定在这种情况下该怎么做。现在一封电子邮件在outlook中打开,但是在电子邮件正文中,“〜”不会被根文件夹替换,而只是显示“〜/ z / blog_listing.aspx?fid = 489%26id = {0}& ; ID = 1127“。

以下是我的代码,我遇到了问题。

代码背后的代码:

hypEmail.NavigateUrl = 
    Page.ResolveUrl(
        "mailto:someone@x.com?Body=Check out this blog post I found: ~/z/blog_listing.aspx?fid=489%26id={0}", 
        cdata.PostID);

标记页面:

<asp:HyperLink ID="hypEmail" Text='Email' class="last" CommandName="Select" 
               runat="server"></asp:HyperLink>

谢谢!

1 个答案:

答案 0 :(得分:2)

Page.ResolveUrl正在等待网址,并且不会神奇地格式化字符串中的所有网址。

您可以用以下代码替换您的代码:

string url = string.Format(
    "~/z/blog_listing.aspx?fid=489%26id={0}", 
    cdata.PostID
    );

string body = "Check out this blog post I found: " + Page.ResolveUrl(url);
hypEmail.NavigateUrl = string.Format(
    "mailto:{0}?Body={1}",
    "someone@x.com",
    HttpUtility.UrlEncode(body)
    );