Почему мои ссылки на Facebook не работают, если в них есть пробелы, но они закодированы (asp.net mvc)? - PullRequest
0 голосов
/ 18 сентября 2010

Вот мой код для моей ссылки на Facebook:

<a href="<%= HttpUtility.UrlPathEncode("http://www.facebook.com/sharer.php?u=http://www.apoads.com"+ Request.Url.PathAndQuery) %>" title="Share on Facebook" rel="nofollow" target="_blank"><img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" /></a>

результирующий URL выглядит следующим образом (скопируйте и вставьте из кода представления в Firefox):

<a href="http://www.facebook.com/sharer.php?u=http://www.apoads.com/en/Yokota/Biz/Show/Acrylic%20Nails%20for%20less" title="Share on Facebook" rel="nofollow" target="_blank"><img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" /></a>

Обратите внимание, что пробелы в "Acrylic% 20Nails% 20for% 20less" представлены как% 20.

Тем не менее, похоже, что Facebook полностью удаляет% 20, но и вместе убирает пространство! Поскольку имя с пробелами выглядит так, как оно выглядит в базе данных ... моя ссылка на Facebook всегда сообщает о неработающей ссылке.

Есть ли способ заставить это сохранить пробелы?

Обновление Я удалил свой код, вместо этого добавил код AddThis. Ссылки, сгенерированные их службой, кодируются так:

http%3A%2F%2Fwww.apoads.com%2Fen%2FYokota%2FBiz%2FShow%2FAcrylic%2520Nails%2520for%2520less

Существует ли утилита .net / c # для такого кодирования? или мне придется кататься самостоятельно?

1 Ответ

2 голосов
/ 18 сентября 2010

Я думаю, вы хотите, чтобы ссылка была:

<a href='<%= String.Format("http://www.facebook.com/sharer.php?u={0}",
               HttpUtility.UrlPathEncode("http://www.apoads.com" + Request.Url.PathAndQuery)) %>' 
   title="Share on Facebook" 
   rel="nofollow" 
   target="_blank">
     <img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" />
</a>

Обновление Из вашего обновления похоже, что оно может быть закодировано вдвойне:

<a href='<%= String.Format("http://www.facebook.com/sharer.php?u={0}", 
               HttpUtility.UrlEncode(HttpUtility.UrlPathEncode("http://www.apoads.com"+ Request.Url.PathAndQuery))) %>' 
   title="Share on Facebook" 
   rel="nofollow" 
   target="_blank">
     <img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" />
</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...