2011-08-26 21 views
7

Abbiamo un po 'di blocchi di codice C# all'interno dei nostri file cshtml che devono essere presentati in cshtml e da nessun'altra parte (ovviamente non è un caso brillante ma è un'altra domanda).Comprimi C# block in cshtml e salvalo

Come possiamo ridurre o nascondere questi blocchi di codice per consentire ai nostri progettisti di lavorare più agevolmente? Vogliamo anche nascondere questi blocchi di codice durante le demo dei progressi con il markup.

Il vero problema è che dobbiamo anche salvare la rappresentazione visiva in SVN.

Esiste una funzionalità VS 2010 nativa per questo o un plug-in? Forse c'è l'opportunità di usare pagine "parziali" cshtml dove tutto il markup sarà in un file e tutto il codice C# sarà in un altro?

Sfortunatamente VS non sta per comprimere i blocchi di codice C# all'interno della direttiva #region in tali file.

In definitiva, esiste una domanda simile Regions In ASP.NET Views? ma non fornisce alcuna risposta su come salvare la rappresentazione compressa quando è stato utilizzato l'elemento di azione del menu di scelta rapida "Comprimi tag".

risposta

0

Il modo in cui lo vedo è che i file cshtml sono pensati per un lato "controllo utente" di un livello di presentazione. Se si dispone di un numero eccessivo di codice nei file di visualizzazione, quindi si effettua il refactoring del codice e si spostano i componenti riutilizzabili in viste parziali. Vorrei quindi includere questi punti di vista parziali attraverso

@Html.RenderPartial("PartialViewName", Model.propertyToRender), o userei

@{ Html.RenderAction("ActionName", "ControllerName") ;}

+0

Purtroppo abbiamo già una struttura sofisticata di viste parziali all'interno di data implementazione quindi non in grado di sfruttare tale approccio.Il refactoring è una buona idea, ma non possiamo permettercelo dato che stiamo lavorando contro un programma molto aggressivo, così come per il momento stiamo cercando il modo di nascondere i blocchi C# e niente altro –

+0

Un'altra alternativa è rivedere un processo. Ci sono i controlli dell'interfaccia utente e c'è un livello logico di presentazione. I progettisti si preoccupano dei controlli dell'interfaccia utente indipendentemente dal livello logico di presentazione. Questo è secondo il libro di Architecting Enterprise Applications di Dino. Non sei sicuro di quanto sia rilevante nel tuo scenario. –

2

Basta selezionare il codice, fare clic destro e selezionare Comprimi Tag

+1

Questo funziona per i tag HTML, ma non per i blocchi di codice. – GalacticCowboy

+0

Funziona per codice come è stato indicato nella domanda originale. Ma il nostro obiettivo è salvare la rappresentazione (collassata o meno, o almeno la capacità di collassare - come con le regioni) in SVN - ovviamente dobbiamo risolvere questa cosa e la domanda riguarda questo –

15

Provare a utilizzare funzionalità di compressione di Visual Studio. Per impostazione predefinita Credo che le chiavi sono:

[Ctrl + M, Ctrl + H] per nascondere una selezione arbitraria, e
[Ctrl + M, Ctrl + U] per mostrare lo stesso (anche se collassato).

Questo dovrebbe consentire di nascondere temporaneamente qualsiasi codice. Maggiori dettagli disponibili su MSDN

E 'questo che stavi cercando?

Dopo aver letto un po 'di più, si desidera salvarli collassati, e apparentemente .cshtml non supporta #regions. Credo che una soluzione hacky potrebbe essere il vecchio:

@if(false){ 
    <div> 
     <!--/*{your long code}*/--> 
    </div> 
} 

O qualcosa in tal senso, ma si ottiene l'idea :)