2012-05-30 12 views
12

Otrzymałem komunikat "Potencjalnie niebezpieczna prośba" .. w aplikacji formularza sieci Web Próbowałem z "validatepage = false" i "" wtedy próbowałem Server.HtmlEncode tak to jest zapisywanie zakodowanego html w bazie danych. Teraz, kiedy pokazywałem dane w sterowaniu Repeater przez Server.HtmlDecode(DataContent.FieldValue("Contents", Container)) Wyświetla tekst z tagami html, takimi jak <p>asfd</p> ..Alternatywa dla Html.Raw w ASP.NET WebForms

jak mogę rozwiązać ten problem? W widoku maszynowym Html.Raw działa dobrze, ale co jest alternatywą w widoku webform/ASP.NET? Czy ktokolwiek może pomóc?

+2

próbowałem wiele ale rozwiązać go sam :) <% # HttpUtility.HtmlDecode (Server.HtmlDecode (DataContent.FieldValue ("ContentBody", kontener)))%> –

+0

Tak to działało dla mnie w '' –

Odpowiedz

5

Można użyć asp: literal z mode = użyciem tranzytu

+0

ten sam wynik?

+0

asp: listeral with Przełęcz jest dla mnie tym, co ostatecznie zadziałało. – Amal

+0

Przełęcz dla zwycięstwa! '' z 'this.litError.Text =" Przykładowy link Google Search ";' –

8

można użyć <% = value%>, które nie kodują wartość.

czy można zaimplementować własną wersję HTML.Raw

Html.Raw zwraca instancję IHtmlString który jest prawie taka sama jak ciąg ale ASP.net nie koduje IHtmlString.

Prosta funkcja replikacji HTML.Raw()

/// <summary> 
    /// Stops asp.net from encoding the source HTML string. 
    /// </summary> 
    /// <param name="source"></param> 
    /// <returns></returns> 
    public static IHtmlString HTMLRaw(string source) 
    { 
     return new HtmlString(source); 
    }