Вспомогательный метод Html.ActionLink
всегда возвращает объект TagBuilder
.Когда вы передаете такой объект в параметр string
, будет вызван метод ToString()
, что приведет к полученному результату (имя класса: «Microsoft.AspNetCore.Mvc.Rendering.TagBuilder»).
Мне кажется, вы пытаетесь создать гиперссылку довольно странным способом.Вы пытались использовать вспомогательный метод Url.Action
?Этот метод возвращает простой старый string
, готовый для подключения к любому атрибуту href.
Например, этот код будет эквивалентен тому, что вы пытаетесь достичь:
@Html.Raw(
string.Format(_stringLocalizer["RegisterNoticeMessage"],
"<a href=\"" + Url.Action("Register") + "\">" + _stringLocalizer["RegisterLinkDisplayName"] + "</a>")
)
Sidenotes:
- Это возможно возможно получить значение
string
TagBuilder, как показано в этом сообщении. - Нет необходимости повторять
@
, когда вы уже работаете в контексте Razor / C #. - Будьте предельно осторожны при использовании
Html.Raw
, так как это может привести к уязвимости XSS.