2011-11-25 13 views
6

Questo mi sta facendo girare la curva. Sono molto tempo sviluppatore di moduli VB.NET, abbastanza nuovo a ASP.NET e completamente nuovo a MVC. Sto creando vbhtml pagine che utilizzano la sintassi VB.NET Razor e mi sembra di essere costantemente in lotta contro il UI che sta cercando di rientrare il mio codice in modo errato. Prendiamo il seguente esempio, in base alla pagina di modello per un nuovo Razor vista:Come posso fare in modo che il rientro del codice si comporti correttamente nei file del rasoio vbhtml?

@Code 
    Layout = Nothing 
End Code 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div> 
     @If True Then 
      @<ul> 
       @For x = 1 To 2 

       Next 
      </ul> 
       End If '<-- Randomly indented too far 
    </div> 
</body> 
</html> 

Nell'esempio di cui sopra, non appena ho colpito tornare dopo Next, End If due righe sotto salti in modo casuale due schede in avanti da dove dovrebbe essere. In altri esempi ho colpito un cerchio in cui spingere una riga nel punto corretto lancia un'altra linea fuori posizione e viceversa.

Sono così annoiato a questo punto che sarei felice di disabilitare completamente l'indentazione automatica e di gestirlo da solo, ma non riesco nemmeno a scoprire come farlo! Seguendo i consigli su un altro thread ho disabilitato il rientro per le pagine HTML ma tutto ciò si interrompe è il rientro dei tag HTML - i blocchi di codice continuano a scorrere in tutto il luogo.

Pensavo che un'estensione potesse causare il problema ma li ho disabilitati tutti e riavviato e il problema rimane. Sto facendo qualcosa di fondamentalmente sbagliato? Trovo difficile credere che lo Microsoft pubblichi qualcosa di così povero, quindi sembra più probabile che non lo stia usando nel modo giusto.

+0

Penso che sia possibile utilizzare l'opzione "Formatta tutto il documento" che fa parte dello strumento "Modifica origine HTML" in Visual Studio. In alternativa è possibile utilizzare il comando (Ctrl + E, D) su base regolare per formattare il documento. – pramodtech

+1

@Pramodtech: Nel mio ambiente, Ctrl + E, D visualizza la finestra di dialogo "Aggiungi file esistente", ma ho provato Ctrl + K, D che sembra formattare l'intero documento. Il problema è che altera il documento ancor peggio di prima. Sembra che MS abbia un bug serio nell'indentazione automatica di vbhtml che trovo davvero sorprendente dato quanto VS è generalmente lucido. – wwarby

+0

@wwarby Non è solo VB, influisce anche su C#, il che rende ancor più stupefacente il fatto che non sia stato ancora risolto. –

risposta

2

ho trovato una soluzione (di moda) su un'altra domanda (ho veramente fatto la ricerca difficile prima di inviare questa domanda e non ho trovato nulla): Why doesn't Visual Studio code formatting work properly for Razor markup?

In sostanza, la soluzione sembra essere quello di garantire che il codice usa spazi invece di tabulazioni per gli spazi bianchi. Mentre aumenta la dimensione complessiva della pagina a causa di un maggiore spazio bianco, riduce il problema (pur non eliminandolo completamente). Sul thread collegato, qualcuno che sembra essere connesso con Microsoft ha riconosciuto che si tratta in effetti di un bug relativo ai formattatori sovrapposti per HTML e VB.NET che sperano di migliorare in una nuova versione. Sono sceso a 2 spazi per trattino per ridurre l'impatto della larghezza di banda.

Grazie ai ragazzi che hanno contribuito.

0

Un'alternativa migliore qui (piuttosto che utilizzare spazi per le schede), consiste nel modificare il rientro del blocco per HTML e C#/VB su "Blocca" anziché su "Smart". Questa non è una soluzione completa, ma IMO è una soluzione molto meno dolorosa rispetto all'utilizzo degli spazi!

Problemi correlati