2013-11-15 8 views
7

So molto poco di ASP.NET, tuttavia devo correggere alcuni layout in alcune webform ASP.NET. Il seguente codice:xslt in ASP.NET

<head id="Head1" runat="server"> 
... 
<xml id="dataList_xsl"> 
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:extObject="urn:extObject"> 
<xsl:output method="html" /> 
<xsl:template match="/"> 
    <table unselectable="on" id="my_table_mains" cellspacing="0" cellpadding="3" class="dataListTable view" style="width: 100%;"> 
     <tr unselectable="on"> 
      COLUMNS_DEFINITION 
     </tr> 
... 

dovrebbe visualizzare nulla nel caso di mancata corrispondenza, e così è stato in Internet Explorer 8, ma viene visualizzato il "COLUMNS_DEFINITION" nelle versioni più recenti di Internet Explorer. Come posso risolvere il problema?
Viene visualizzato un errore di convalida sul tag: l'elemento 'xml' non è supportato, btw.

risposta

6

Non penso che abbia nulla a che fare con ASP.NET. IE (Internet Explorer) utilizzato per supportare un'estensione HTML, così chiamata isole di dati XML, in cui si inseriscono dati XML o fogli di stile in un nuovo elemento proprietario in HTML, l'elemento xml. Se si desidera continuare ad utilizzare tale elemento e avere nuove versioni di IE sostenerlo quindi è necessario assicurarsi di impostare il x-ua-compatible a IE 8, inviando l'intestazione HTTP o includendo un meta:

<head> 
    <meta http-equiv="x-ua-compatible" content="IE=8"> 

Vedi http://msdn.microsoft.com/en-us/library/jj676915%28v=vs.85%29.aspx per i dettagli.

ho scritto due casi di test, con http://home.arcor.de/martin.honnen/html/test2013112001.html IE 10 su Windows 8 mostra il contenuto della XSLT all'interno dell'elemento xml come HTML 5 parser ha muove la roba xml nella sezione head al corpo (premere F12 per vedere l'albero di analisi) mentre con e l'applicazione meta per utilizzare IE 8 lo xml viene riconosciuto come isola di dati XML (premere F12 per visualizzare l'albero di analisi) e non restituisce il contenuto all'interno dell'isola di dati XML.

Greg, se si verificano ancora problemi, controllare che ASP.NET non stia inviando un'intestazione HTTP x-ua-compatible diversa che potrebbe sovrascrivere lo meta.

Questo è un collegamento: http://msdn.microsoft.com/en-us/library/ie/hh801224%28v=vs.85%29.aspx. Suggerisce una meta leggermente diversa <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">, in ultima analisi equivale a garantire che venga utilizzato il parser legacy che riconosce un elemento xml come isola di dati XML.

+0

non ha davvero aiutato .... usando IE 10. – Greg

+0

@Greg Martin suggerisce di aggiungere quel tag all'elemento head perché farà sì che IE 10 si comporti come IE8 per quella specifica pagina. – Nate

+0

bene ho capito e ho fatto, ma non ha funzionato. – Greg