Есть простая задача - достать из строки ссылку и сделать её активной внутри текста.

Сделано это следующим образом

   string wholeMessage = "Ну просто какой то длиииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииинный текст в конце ссылка например https://google.com"
   string url = "https://google.com"

   wholeMessage = wholeMessage.Replace(url, GetALinkFromAdress(url));

   public static string GetALinkFromAdress(string address)
        {
           
            string before = "<a target=\"_blank\" href=\"";
            string medium = "\">";
            string after = "</a>";
            return before + address + medium + address + after;
        }

Но в итоге в конечной вьюшке ссылка не подсвечивается и не работает, тэг воспринимается как часть строки.

Вот так это выглядит в коде вьюшки

Как это выглядит в консоли браузера

Т.е. видно что тэг не обрабатывается браузером. Почему такое может быть и как сделать чтобы обрабатывался?


Ответы (1 шт):

Автор решения: Potion

Как выше в комментарии указал @aepot, надо конвертировать string в HTMLString Тогда все заработает

HtmlString str = new HtmlString(comment.MessageText);
<div class="message" style="padding:5px;">
  <b>[Message]</b><span>@str</span>
</div>

Результат - все работает корректно, ссылки подсвечиваются и кликаются

→ Ссылка