Bir DB tablosunda güvenli/sterilize edilmiş HTML'im var.HTML dizgilerini yazma/çıkarma unescaped
Bu HTML içeriğini bir Razor görünümünde nasıl yazabilirim?
<
ve ampersands gibi karakterleri her zaman &
'a kaçar.
Bir DB tablosunda güvenli/sterilize edilmiş HTML'im var.HTML dizgilerini yazma/çıkarma unescaped
Bu HTML içeriğini bir Razor görünümünde nasıl yazabilirim?
<
ve ampersands gibi karakterleri her zaman &
'a kaçar.
içeriğinizi farz mystring
adında bir dize içinde olduğunu ...
@Html.Raw(mystring)
Alternatif HtmlString
veya doğrudan modeli veya içinde IHtmlString
uygulayan başka türüyle dize dönüştürebilirsiniz Satır içi kullanın ve düzenli olarak kullanın. @
:
@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString
Bu cevap için teşekkürler. Öğrenmekte olduğum küçük bir görevi bitirmeme yardım ettim. :) Ancak MVC3'ün en son sürümünü kullanıyorum ve şu ana kadar hiçbir Html.Raw :( –
Merhaba Sergio. MVC 3 kullanıyorum ve Raw yöntemini doğru kullanıyorum. –
Cevabınız için teşekkür ederim! ' hala MVC 3'ü öğreniyorum ve bu beni utandırdı –
ASP.NET MVC 3'te Böyle bir şey: Dommer önerdiği gibi @MvcHtmlString.Create(ViewBag.Stuff)
kullanmaktan dışında
// Say you have a bit of HTML like this in your controller:
ViewBag.Stuff = "<li>Menu</li>"
// Then you can do this in your view:
@MvcHtmlString.Create(ViewBag.Stuff)
, sana da tavsiye phill Neredeyse tüm olası XSS saldırısı dize kodlar http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx
olarak AntiXSS kütüphane kullanımı öneriyoruz.
ViewData["string"] = DBstring;
Ve sonra böyle görünümde o viewdata çağırır:
@Html.Raw(ViewData["string"].ToString())
ASP.NET MVC, XSS güvenlik açığının çoğunu zaten işlemiyor mu? – William
Sen böyle denetleyicisi ViewData içine dize koyabilirsiniz
@{ WriteLiteral("html string"); }
1 WriteLiteral için, bir –
Bu, benim için harika oldu e-postalar göndermek için bir Hangfire uygulaması içinde Razor kullanılarak olduğunu bilmiyordum ... 'Html.Raw()' WriteLiteral orada – shanabus
1 çalışmıyor –
kullanabilirsiniz Bazen ham html kullanmak zor olabilir. Çoğunlukla XSS güvenlik açığı nedeniyle. Bu bir endişe, ancak hala ham html kullanmak istiyorsanız, korkutucu parçaları kodlayabilirsiniz.
(<b><script>console.log('insert')</script>Hello</b>)
yılında
Sonuçlar aşağıda insanlara tartışma uzun bir geçmişe kaydetmek için - '@ Html.Raw()' –
benim gibi insanlar dinamik yazılan anonim türleri ile birlikte bu yapmaya çalışıyor kaydetmek için Bu işlemin işe yaramayacağı yerler, daha spesifik sorularıma [bu yanıtı] (http://stackoverflow.com/a/31306368/957950) bakın. Durumunuz izin veriyorsa, bu yaklaşımın güçlü bir şekilde yazılmış bir görünümle kullanılması hala daha iyidir. – brichins