Bunun IHtmlString
yerine kullanmalısınız:
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 tutması gereken model özellikleriniz veya değişkenleriniz olduğunda, bunun genellikle daha iyi bir uygulama olduğunu düşünüyorum. Öncelikle biraz daha temiz. Örneğin:
@Html.Raw(str)
Nazaran:
@str
Ayrıca, @Html.Raw()
verilerinizin HTML olup olmadığı endişesi denetleyicinizde tutulduğu için kullanmaktan biraz daha güvenli olduğunu düşünüyorum . Ön uç geliştiricilere karşı arka uç geliştiricilere sahip olduğunuz bir ortamda, arka uç geliştiricileriniz, hangi verilerin HTML değerlerini tutabileceğiyle daha uyumlu olabilir ve böylece bu endişeyi arka uçta (denetleyici) tutabilir.
Genelde Html.Raw()
mümkün olduğunca kullanmaktan kaçınmaya çalışırım .
Kayda değer bir diğer şey de, nereye atadığınızdan emin değilim str
, ancak bunu nasıl uygulayacağınızla ilgili beni ilgilendiren birkaç şey.
İlk olarak, bu, çözümünüzden ( IHtmlString
veya Html.Raw
) bağımsız olarak bir kontrolörde yapılmalıdır . Gerçekten oraya ait olmadığı için, size göre böyle bir mantıktan kaçınmalısınız.
Ek olarak, ViewModel
değerlerinizi görünümünüze almak için (ve yine ideal IHtmlString
olarak mülk türü olarak kullanmak) 'nizi kullanmalısınız . Bunu @Html.Encode(str)
sadece örneğinizi basitleştirmek için yapmadığınız sürece, bunun gibi bir şey görmek biraz endişe vericidir.
Html.Raw
yardımcı olmalı.