2016-03-08 4 views
0
string testURL = 'www.google.com/just test' 

StringBuilder emailBody = new StringBuilder(); 

emailBody.Append("<tr>"); 
emailBody.Append("<td> Just the URL </td>"); 
emailBody.Append("<td> String with href property </td>"); 
emailBody.Append("</tr>"); 
emailBody.Append("<tr>"); 
emailBody.Append("<td>" + testURL + "</td>"); // it displays: www.google.com/just test 
emailBody.Append("<td> <a href=" + Uri.EscapeDataString(testURL) + ">" + name + "</a> </td>"); 
// the href property displays only: www.google.com/just 
emailBody.Append("</tr>"); 

Как я могу это достичь? Я попытался с помощью метода Uri.EscapeDataString()положить ссылку на пробелы в href property

+2

Посмотрите здесь http://stackoverflow.com/questions/1517586/how-do- i-replace-all-the-spaces-with-20-in-c-sharp – Mark

+0

Кроме того, код, который вы написали, не будет компилироваться. Вам не хватает '+' между 'href =" Uri.EscapeDataString', и ваш литерал строки testURL должен быть окружен '' 'вместо' '' –

+0

Ohhh. Моя вина. Это происходит, когда вы видите принятый ответ, но хотя вы принимаете во внимание самый проголосовавший комментарий. Должен ли я удалить этот вопрос? –

ответ

0

Вы можете попробовать

HttpUtility.UrlPathEncode(testURL) 
+0

Тогда возвращается "", я попробовал –

0

Вы должны попробовать это

System.Web.HttpUtility.UrlEncode(string testURL) 
0

Заменить пробелы с 20% в testURL.

1

HREF должны быть в форме href="something" не href=something так заменить

emailBody.Append("<td> <a href=" + Uri.EscapeDataString(testURL) + ">" + name + "</a> </td>"); 

с

emailBody.Append("<td> <a href=\"" + Uri.EscapeDataString(testURL) + "\">" + name + " </a> </td>"); 
Смежные вопросы