IHtmlString
代わりに使用する必要があります:
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>");
HTMLを保持する必要のあるモデルプロパティまたは変数がある場合は常に、これが一般的にはより良い方法だと思います。まず第一に、それは少しきれいです。例えば:
@Html.Raw(str)
に比べ:
@str
また、@Html.Raw()
データがHTMLかどうかの懸念はコントローラーに保持されるため、を使用するよりも少し安全だと思います。フロントエンド開発者とバックエンド開発者がいる環境では、バックエンド開発者は、どのデータがHTML値を保持できるかを調整しているため、この問題をバックエンド(コントローラー)で維持できます。
私は通常、Html.Raw()
可能な限り使用しないようにしています。
もう1つ注目すべきことは、どこに割り当てるかがわからないことですstr
が、これを実装する方法について私に関係するいくつかの点があります。
まず、これは、ソリューション(IHtmlString
またはHtml.Raw
)に関係なく、コントローラーで行う必要があります。このようなロジックは実際にはそこに属していないため、ビューでは避けてください。
さらに、ViewModel
ビューに値を取得するためにを使用する必要があります(また、理想的にIHtmlString
はプロパティタイプとして使用します)。@Html.Encode(str)
例を単純化するためだけにこれを行っていなかった場合を除いて、何かを見るのは少し心配です。
Html.Raw
は助けるべきだと思います。