2016-05-11 13 views
6

Quando si scrive codice in Razor, la casella a discesa Intellisense non funziona correttamente. Si aprirà e poi si chiuderà meno di un secondo dopo.MVC/Razor - Chiusura popup Intellisense Quando c'è una parentesi successiva

Questo non succede a me quando scrivo una lezione o qualcosa del genere, è presente solo quando sto lavorando a una vista.

a spiegare cosa accade mentre scrivo

  • @Html.
    1. La casella Intellisense si apre e resta aperta.
  • @ Html.DisplayFor (p => M) // La parentesi di chiusura è scritto automaticamente da VS
    1. La scatola apre alle mostra possibili ingressi che iniziano con M, ma si chiude immediatamente.
  • @ Html.DisplayFor (p => Modello.)
    1. La scatola si apre e mostra le proprietà associate con il modello, ma poi si chiude immediatamente.

Se, tuttavia, aggiungo uno spazio:

  • @ Html.DisplayFor (p => M)
    1. La scatola rimane aperta.
  • @ Html.DisplayFor (p => Modello.)
    1. La scatola rimane aperta.

È ci una regolazione o qualcosa che sta facendo questo a me?

Questo problema persiste chiudendo e riaprendo VS, oltre a ricostruire il progetto.

Utilizzo di Visual Studio 2015 Professional 2015 Aggiornamento 2 Utilizzo di Razor durante l'esecuzione di MVC. Ho anche installato Web Essentials, se c'è un'impostazione che potrebbe causare questo.

+0

Cosa succede quando si attiva il popup usando ctrl-space? È possibile che VS stia recuperando l'analisi del codice e si accorga che i contenuti popup originali non sono validi. Alcune volte il codice errato parzialmente scritto può rendere l'intero file non analizzabile, il che significa che tutte le informazioni su quali membri sono disponibili sono perse. JetBrains Resharper esegue molto l'analisi e il completamento automatico del lavoro. – Charlie

+0

@Charlie ctrl + spazio aprirà il popup correttamente e rimarrà aperto. Come farei a rintracciare "codice errato parzialmente scritto"? – hcaelxxam

+0

Il codice errato parzialmente scritto è una situazione molto grave. L'esempio migliore è quando si avvia un'istruzione if e si apre la parentesi graffa (forse da una copia) ma non si fornisce la parentesi di chiusura. Il parser non riesce a trovare la fine della classe in modo che si arrenda solo fino a ottenere tutte le parentesi graffe per abbinare. Potresti avere qualche altra opzione o plugin che sta 'rubando lo stato attivo' e facendo scomparire il popup. Questo sarebbe molto difficile da rintracciare. Potresti provare a disabilitare tutti i tuoi plug-in, ripristinare le impostazioni predefinite, ecc. E vedere se va via. Anche il riavvio del computer potrebbe funzionare. – Charlie

risposta

0

Nel mio caso specifico, sono stato in grado di risolvere il problema installando l'ultima versione di Microsoft ASP.NET e Web Tools.

https://marketplace.visualstudio.com/items?itemName=JacquesEloff.MicrosoftASPNETandWebTools-9689

Una volta installato, il problema era sparito. È probabile che questo aggiornamento risolva qualcosa che potrebbe essere corretto con una versione precedente, ma in entrambi i casi sono felice.

(l'ho trovato in Visual Studio in Strumenti-> Estensioni e aggiornamenti ...-> Updates-> Visual Studio Gallery)

0

Ho stesso problema fastidioso a volte (VS2015), non so capo né coda, ma un esempio: In cima al file di cshtml ho avuto ...

@{ 
    Style. 
} 

Quando ho premuto il tasto "." dopo Style, l'intellisense ha mostrato per una frazione di secondo, poi se ne va.

So che questo è stupido, ma quando ho aggiunto una chiave di ritorno per aggiungere lo spazio della linea - quindi ho intellisense che funziona di nuovo correttamente.?

@{ 
    Style. 

} 

So che non è una soluzione, ma questo lavoro rapidamente mi fa andare di nuovo.

Eliminazione di tutti gli spazi dopo lo stile. fino a} quindi sembra Style.} ha funzionato anche per me quindi potrebbe esserci qualche carattere speciale che causa problemi.

Problemi correlati