Получить ссылку с возможностью нажатия при использовании string.replace c # mvc - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь изменить определенное слово по кликабельной ссылке с функцией Заменить.Приложение работает так: когда я размещаю ярлык где-то на странице, я могу динамически выбирать, какое слово может быть ссылкой.

Моя проблема возникает, когда я заменяю текст тегом.Когда я загружаю страницу, я не получаю ссылку, я получаю только необработанный текст.Вот пример кода: (Простите за неоптимизированный код, я просто пытаюсь заставить его работать)

var text = ViewBag.isEnglish ? Model.TextEnglish : Model.TextFrench; //Get the text either in french or english

int counter = 0;
foreach(var option in Model.FieldItems)
{
    text = text.Replace(ViewBag.isEnglish ? option.TextEnglish : option.TextFrench, "{" + counter + "}");//Replace the selected text to {#}
    counter++;
}
counter = 0;
foreach(var option in Model.FieldItems)
{

    if (ViewBag.isEnglish) {
        text = text.Replace("{" + counter + "}",string.Format("<a href=\"{0}\" target=\"_blank\">{1}</a>", option.Value, option.TextEnglish));//Replace the {#} with the <a> tag here
    }
    else
    {
        //text = text.Replace("{" + counter + "}", "<a href=\""+option.Value+"\" target=\"_blank\">"+option.TextFrench+"</a>");
    }
    counter++;
}
if (ViewBag.isEnglish)
{
    Model.TextEnglish = text;
}
else
{
    Model.TextFrench = text;
}
<div id="field@(Model.FieldID)" class="field form-group @Model.Classes.Format("Field")" data-fieldid="@Model.FieldID">
    <span for="@id" class=" @Model.Classes.Format("Label")">@(ViewBag.isEnglish ? Model.TextEnglish : Model.TextFrench)</span>//Show the text here      
    </div>

Я пытаюсь не использовать помощник Microsoft.Я не знаю, что я делаю не так.Есть ли способ, чтобы не получить необработанный текст из этого?Спасибо за чтение и ответ

1 Ответ

0 голосов
/ 24 мая 2018

Вместо использования

@(ViewBag.isEnglish ? Model.TextEnglish : Model.TextFrench)

попробуйте использовать

@Html.Raw(ViewBag.isEnglish ? Model.TextEnglish : Model.TextFrench)

, который будет отображать HTML вместо простого текста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...