Хорошо, у меня есть следующая строка.
ViewBag.EntryFieldName = $"value=\"{Model.Title}\"";
Model.Title = Проверка времени
Отладку проводил, в переменную записывается нормально. Я ее начинаю использовать в HTML коде:
<input type="text" name="Title" @ViewBag.EntryFieldName class="form-control" />
Когда захожу на сайт вижу от этой строки лишь: "проверка
<input type="text" name="Title" value=""проверка" времени"="" class="form-control">
Как фиксить?(
Вы же интерполируете строку сами, как я понял:
$"value=\"{Model.Title}\"";
Почему бы не достать $"value=\" и не разместить это сразу внутри тега:
<input type="text" name="Title" value="@ViewBag.EntryFieldName" class="form-control" />
Этот подход лучше, чем использование @Html.Raw(), так вы предотвратите возможность html инъекций.
Так же смущает название переменной Model. Если это модель, которая передаётся внутрь View() то ViewBag здесь совсем не нужен.
Если вам всё же крайне критично, чтобы всё значение переменнной оставалось таким:
ViewBag.EntryFieldName = $"value=\"{Model.Title}\"";
потому, что вы искользуете её где-то ещё именно в этом виде, то почему бы не создать дополнительную переменную
ViewBag.InputValue= Model.Title;
для отображения именно в
<input type="text" name="Title" value="@ViewBag.InputValue" class="form-control" />
Нашел решение, вместо
<input type="text" name="Title" @ViewBag.EntryFieldName class="form-control" /> следует использовать <input type="text" name="Title" @Html.Raw(ViewBag.EntryFieldName) class="form-control" />
!!!!НО ВНИМАНИЕ!!!! этот html хелпер (@html.raw) может привести к нежелательным, а то и опасным, html инъекциям в ваш код. будьте аккуратны
Продвижение своими сайтами как стратегия роста и независимости