我正在尝试在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>
谢谢!
答案 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)
);