2010-01-01 11 views
1

Si j'ajoute pageBaseType="Spark.Web.Mvc.SparkView" dans mon web.config (nécessaire pour réparer intellisense), d'une certaine manière, il ne rendra plus correctement les liens (probablement pas seulement).Pourquoi le viewengine de Spark rend-il des citations inutiles (ou inattendues)?

Voici comment il est censé ressembler (et fait, si le type de base de page est non spécifié) =>

alt text http://i49.tinypic.com/2woyakn.jpg

C'est à quoi il ressemble lorsque le type de base est spécifié =>

alt text http://i49.tinypic.com/2n6rx9f.jpg

spectateur source Chrome affiche le code source de la page identique pour les deux cas =>

<body> 
    <div class="content"> 
     <div class="navigation"> 
      <a href="/Employee/List">Employees</a> 
      <a href="/Product/List">Products</a> 
      <a href="/Store/List">Stores</a> 
      <div class="navigation_title"> 
       Navigation</div> 
     </div> 
     <div class="main"> 
      <div class="content"> 
<h2>Employees</h2>Nothing found... 
&lt;a href=&quot;/Employee/Create&quot;&gt;Create&lt;/a&gt;   
      </div> 
     </div> 
    </div> 
</body> 

outils de développeur n'a pas =>

alt text http://i50.tinypic.com/iz7vpg.jpg

Alors - pourquoi mon lien se htmlencoded (si c'est ce qui se passe)? Si c'est le comportement par défaut, alors comment rendre html brut? Utilisation de la dernière version de Spark, reconstruite avec des assemblages RC Asp.Net Mvc2.

Répondre

1

est-ce que automaticEncoding est défini sur true dans web.config?

<spark> 
    <pages automaticEncoding="false"> 
    </pages> 
</spark> 
+0

Aha ... Je pensais que ça avait quelque chose à voir avec unicodes/ascii. Juste copier/coller exemple et oublié à ce sujet. Quoi qu'il en soit - comment remplacer le codage automatique? –

+0

juste le mettre à false et utiliser le H() lorsque vous voulez coder quelque chose –

+0

Que j'ai compris. C'est une solution acceptable. Je me demandais juste - si je peux le garder vrai et toujours rendre html avec quelque chose comme 'NH()'. :) –

1

Vous avez 2 problèmes différents ici. D'abord le problème de l'encodage. Deuxièmement les citations, ce sont tous les Chrome.
Chrome a enfermé le texte et le lien dans un noeud CDATA. Quelque chose au sujet de votre page l'a déclenché pour rendre XHTML et en tant que tel, il ne permettra pas ce texte à l'intérieur d'un DIV. Généralement, l'espace de noms XHTML sur l'élément HTML le fait ou votre application envoie des pages avec le type MIME XHTML. Mais j'ai trouvé des tests dans Chrome que d'autres choses à propos d'une page vont le lancer en mode XHTML comme les balises auto-fin et autres.