как динамически генерировать корневую папку в ссылке - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь динамически генерировать корневую папку в URL, который находится в теле гиперссылки 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 Ответ

2 голосов
/ 31 декабря 2011

Page.ResolveUrl ожидает URL и не будет магически форматировать все URL в строке.

Вы можете заменить свой код на:

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)
    );
...