Deberías estar usando en su IHtmlString
lugar:
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>");
Siempre que tenga propiedades de modelo o variables que necesiten contener HTML, creo que esta es generalmente una mejor práctica. Primero que nada, es un poco más limpio. Por ejemplo:
@Html.Raw(str)
Comparado con:
@str
Además, también creo que es un poco más seguro que usarlo @Html.Raw()
, ya que la preocupación de si sus datos son HTML se mantiene en su controlador. En un entorno en el que tiene desarrolladores de front-end frente a desarrolladores de back-end, sus desarrolladores de back-end pueden estar más en sintonía con los datos que pueden contener valores HTML, manteniendo esta preocupación en el back-end (controlador).
Generalmente trato de evitar el uso Html.Raw()
siempre que sea posible.
Otra cosa que vale la pena señalar, es que no estoy seguro de dónde está asignando str
, pero algunas cosas que me preocupan sobre cómo puede implementar esto.
Primero, esto debe hacerse en un controlador, independientemente de su solución ( IHtmlString
o Html.Raw
). Debería evitar cualquier lógica como esta en su opinión, ya que realmente no pertenece allí.
Además, debería usar su ViewModel
para obtener valores para su vista (y nuevamente, idealmente usar IHtmlString
como tipo de propiedad). Ver algo como @Html.Encode(str)
es un poco preocupante, a menos que esté haciendo esto solo para simplificar su ejemplo.
Html.Raw
debería ayudar.