2009-04-07 7 views
13

Invece di un codice * .cs dietro o accanto mi piacerebbe avere un file * .js. Sto sviluppando un'applicazione MVC che non ha bisogno di un codice a fianco perché ho controller, ma in certi casi sarebbe bello avere un codice JavaScript accanto o un modo per associare il file alla pagina in cui viene utilizzato. Suppongo che potrei semplicemente nominarli allo stesso modo, ma voglio mostrare l'associazione, se possibile, quindi non c'è dubbio su cosa sia il file.In Visual Studio (2008) esiste un modo per avere un file dipendente personalizzato su un altro file personalizzato?

genere di cosa sto parlando è all'interno di Visual Studio ora sotto il file Global.asax si avrà un segno più a sinistra:

+ Global.asax 

Una volta si espande esso si otterrà

- Global.asax 
    Global.asax.cs 

mi piacerebbe la stessa cosa accada:

+ Home.spark 

- Home.spark 
    Home.spark.js 

Aggiornamento:

Il mio file csproj esistente ha un percorso verso il file attuale, non è sicuro che lo stia rovinando. Al momento ho:

<ItemGroup> 
    <Content Include="Views\User\Profile.spark.js"> 
     <DependentUpon>Views\User\Profile.spark</DependentUpon> 
    </Content> 
    </ItemGroup> 
    <ItemGroup> 
    <Content Include="Views\User\Profile.spark" /> 
    </ItemGroup> 

e mostra semplicemente i file uno accanto all'altro.

risposta

11

Assolutamente - ma dovrai modificare il file di progetto a mano. Trova la voce del tuo file "figlio" e modificala come elemento non autochiudente e aggiungi un elemento figlio per dire da cosa dipende. Ecco un esempio di un file .cs in fase di compilazione:

<Compile Include="AssertCount.cs"> 
    <DependentUpon>MoreEnumerable.cs</DependentUpon> 
</Compile> 

Ed ecco una versione che ho appena preso in giro per i file che hai specificato - anche se mi aspetto Home.spark avrà un'azione associata ad esso piuttosto che " Nessuno ":

<ItemGroup> 
    <Content Include="Home.spark.js"> 
    <DependentUpon>Home.spark</DependentUpon> 
    </Content> 
</ItemGroup> 
<ItemGroup> 
    <None Include="Home.spark" /> 
</ItemGroup> 

Visual Studio lo visualizza esattamente come ci si aspetterebbe.

+0

In realtà, in questo momento Spark è solo associata a None: darò un colpo, grazie per la risposta! – rball

+0

provato: \t Vista \ User \ Profile.spark non ha funzionato :( – rball

+1

@rball -.! Profile.spark si presume che essi sono nella stessa cartella –

2

Non so come sia possibile farlo tramite l'interfaccia utente di Visual Studio stessa, ma se si apre il file csproj in un editor di testo, è possibile vedere come lo fanno per Global.asax.

Di solito sembra qualcosa di simile:

<Compile Include="Global.asax" /> 
<Compile Include="Global.asax.cs"> 
    <DependentUpon>Global.asax</DependentUpon> 
</Compile> 
+0

Sì, l'ho visto, ho provato a modellare il mio dopo, ma non ha funzionato. urrently assomiglia: – rball

+0

Vista \ User \ Profile.spark rball

16

C'è VSCommands add-in che consentono di configurare i file dipendenti direttamente da IDE

collegamento aggiornato, precedente era http://mokosh.co.uk/vscommands

FYI: Quando VSCommands è installato, basta selezionare tutti i file che si desidera siano dipendenti e il file di root, quindi fare clic con il tasto destro del mouse -> Raggruppa elementi ... e VSCommands chiederà quale dei file si desidera essere la radice file.

+0

Molto bello, grazie per l'aggiunta – rball

+0

collegamento aggiornato a VSCommands: http://mokosh.co.uk/vscommands –

+1

Impressionante.Questo è molto più semplice che modificare il file di progetto a mano - specialmente se si È necessario fare questo per più file. FYI: Quando VSCommands è installato, basta selezionare tutti i file che si desidera essere dipendenti e il file di root, quindi fare clic destro -> Raggruppa elementi ... e VSCommands chiederà quale dei file vorrebbe essere il file radice. Funziona come un incantesimo! – javajavajavajavajava

0

Mentre le altre soluzioni qui (modifica del file di progetto) funzionano per singoli file, abbiamo fatto la stessa cosa, ma vogliamo che funzioni automagicamente per tutti i file * .conv e * .conv.js piuttosto che dover modifica il file di progetto per ognuno.

Quando aggiungiamo un nuovo.conv file alla nostra app, se abbiamo un file * .conv.js esso annida automaticamente sotto di esso come ci si aspetterebbe da .aspx e * .aspx.cs.

non riesco a trovare il tutorial originale che ho usato per impostare questa funzione (lo fa coinvolto registro hacking), ma qui è quella che ho trovato da una ricerca su Google solo ora che descrive la stessa cosa:

http://blog.dotnetwise.com/2009/09/visual-studio-2008-custom-nested-files.html

0

Se è necessario aggiungere code-behind per alcuni file, è disponibile una soluzione alternativa. Ad esempio, si desidera rendere Test.xaml.cs un figlio di Test.xaml. Completare i seguenti passi:

  1. Escludi entrambi Test.xaml e Test.xaml.cs dal progetto Salva progetto.

  2. Scarica progetto.

  3. Ricarica il progetto.

  4. Fare clic su "Mostra file nascosti" nel riquadro File Explorer.

  5. File Test.xaml.cs verrà visualizzata come figlio di Test.xaml.

  6. Aggiungere i file al progetto, salvare il progetto.

Questo è tutto. Ora Test.xaml.cs dipende da Test.xaml.