2012-06-15 10 views
7

Po przejściu do .net 4.0 niektóre kody javascript z gridview strony trzeciej ulegają awarii. To ma coś wspólnego z HtmlEncode and UrlEncode now encode single quotation marksCzy mogę zatrzymać .net 4.0 z kodowania pojedynczych cudzysłowów?

więc zanim jakiś kod na stronie wstawiono tak: DataItem.GetMember('Id').Value

i teraz jej tak: DataItem.GetMember('Id').Value

GridView robi się eval na tej linii i zawiesza się teraz z błędem składni. Nie mogę zmienić kodu javascript w tym widoku siatki.

Czy istnieje sposób, aby rozwiązać ten problem, nie cofając się w ten sposób?

<pages controlRenderingCompatibilityVersion="3.5" /> 

EDIT: strona controlRenderingCompatiblityVersion nie rozwiąże to również. Pojedyncze cytaty są nadal kodowane.

+0

używasz webforms lub MVC? –

+0

Interesujący problem. "eval" jest złe, więc niefortunne jest to, że utknąłeś w tym. :( – Almo

+0

Używam formularzy internetowych –

Odpowiedz

1

Z tego co przeczytałem, jest to funkcja zabezpieczająca, a Microsoft jest mama o jej zmianie. Jedynym obejrzanym zadaniem jest utworzenie niestandardowej klasy koderów. Można wyłączania za pomocą tego atrybutu kodowania:

public class HtmlAttributeEncodingQuote : System.Web.Util.HttpEncoder 
{ 
    protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output) 
    { 
     output.Write(value); 
    } 
} 

Następnie dodać do pliku web.config pod system.Web:

<httpRuntime encoderType="HtmlAttributeEncodingQuote"/> 
Powiązane problemy