2013-03-21 10 views
35

Na mojej stronie głównej mam kod @{Html.RenderPartial("_Partial1.cshtml");}, a na mój częściowy, mam ciąg HTML:Jak renderować ciąg znaków HTML w ASP.NET MVC?

@{ 
    // The string is actually dynamic, not static. This is here for simplicity 
    string abc="<div class=\"error\">abc</div>"; 
} 
@abc 

Chcę wyjście abc z pewnymi stylami błędach CSS, ale rzeczywiście dostał <div class="error">abc</div> - oczywiście nie ma tam stylów. Jak mogę zinterpretować go jako kod źródłowy HTML, a nie ciąg?

+1

http://stackoverflow.com/questions/4281424/asp-net-mvc-razor-output-html-tring-non-escaped – adt

+0

Co jest nie tak z '

abc
'? – alex

Odpowiedz

92

Możesz użyć do tego metody Html.Raw().

+5

To było absolutnie niesamowite. Wskazówka, jeśli masz plik .html, który chcesz wyrenderować, użyj: @ Html.Raw (File.ReadAllText (Server.MapPath ())) – cgatian

+0

To jest niebezpieczna odpowiedź. Zobacz https://en.wikipedia.org/wiki/Cross-site_scripting – Unw0und

+0

Powiedzmy, że miałem zdefiniować zmienną globalną w maszynce do golenia, a następnie użyć @ html.Raw (w tej zmiennej, ponieważ chcę zdefiniować w niej pewne znaczniki i renderować Czy istnieje sposób, aby ktoś mógł ustawić wartość zmiennej Razor z adresu URL? Po prostu chcę się upewnić, że nie jest ona podatna na XSS przez wstrzyknięty URL .. Dzięki! – eaglei22

Powiązane problemy