Sie sollten IHtmlStringstattdessen verwenden:
IHtmlString str = new HtmlString("<a href="/Home/Profile/seeker">seeker</a> has applied to <a href="/Jobs/Details/9">Job</a> floated by you.</br>");
Wenn Sie Modelleigenschaften oder Variablen haben, die HTML enthalten müssen, ist dies meiner Meinung nach im Allgemeinen eine bessere Vorgehensweise. Erstens ist es etwas sauberer. Beispielsweise:
@Html.Raw(str)
Verglichen mit:
@str
Ich denke auch, dass es ein bisschen sicherer @Html.Raw()ist als die Verwendung , da die Sorge, ob Ihre Daten HTML sind, in Ihrem Controller gespeichert bleibt. In einer Umgebung, in der Sie Front-End- und Back-End-Entwickler haben, sind Ihre Back-End-Entwickler möglicherweise besser auf die Daten abgestimmt, die HTML-Werte enthalten können, sodass dieses Problem im Back-End (Controller) verbleibt.
Ich versuche generell zu vermeiden, Html.Raw()wann immer möglich.
Eine andere erwähnenswerte Sache ist, dass ich nicht sicher bin, wo Sie sie zuweisen str, aber ein paar Dinge, die mich betreffen, wie Sie dies möglicherweise umsetzen.
Dies sollte zunächst in einem Controller erfolgen, unabhängig von Ihrer Lösung ( IHtmlStringoder Html.Raw). Sie sollten eine solche Logik aus Ihrer Sicht vermeiden, da sie dort nicht wirklich hingehört.
Darüber hinaus sollten Sie Ihre verwenden ViewModel, um Werte für Ihre Ansicht zu erhalten (und idealerweise auch IHtmlStringals Eigenschaftstyp verwenden). So etwas zu sehen @Html.Encode(str)ist ein wenig besorgniserregend, es sei denn, Sie haben dies nur getan, um Ihr Beispiel zu vereinfachen.
Html.Rawsollte helfen.