2015-05-12 18 views
5

esistenti Ho un sito web sviluppato in ASP.NET Web Forms con il framework .NET 4.5.1Aggiungere ASP.NET MVC Area per ASP.NET Web Forms progetto

Abbiamo l'obbligo di costruire una replica del sito per i dispositivi mobili (responsive non funziona per noi in questo caso) quindi ho finito per pensare di fare questa parte del sito con ASP.NET MVC.

Nota Prima di continuare: So che ci sono risposto ad alcune domande su questo argomento e nel web ci sono alcuni articoli su come mescolarli. Ma nessuno di loro funziona per me perché sto cercando di utilizzare il framework ASP.NET One per evitare di passare un sacco di lavoro manuale.

Allora, che cosa ho fatto è stato:

  1. aggiungere il pacchetto Nuget per MVC nelle mie ASP.NET WebForms progetto
  2. Una volta aggiunto, ho configurato Spazio MVC per contenere il mio sito mobile in MVC

La struttura del progetto si presenta così:

Project Structure

E qui arriva il mio problema: se eseguo una qualsiasi delle pagine ASPX, funzionano bene. Quando vado in/Mobile/Home/Index dice che la risorsa non è stata trovata. Sospetto che ciò avvenga perché la cartella App_Start non esiste nel mio progetto e Starup.cs non è presente, quindi il sito Web non sa nulla del routing MVC.

Domanda

  1. Come posso aggiungere la cartella App_Start e la Starup.cs con i valori predefiniti senza subire il processo (evitando copia/incolla o processi manuali)?

  2. Come posso rendere entrambi questi (progetti di tipo Web) in diretta mentre dicono che può essere fatto con One ASP.NET Framework ?.

Grazie!

risposta

5

Avrai bisogno di registrare le aree della tua Global.asax (aggiungerlo tramite l'opzione di menu Aggiungi elemento se non esiste):

public class Global : HttpApplication 
{ 

    protected void Application_Start(object sender, EventArgs e) 
    { 
     AreaRegistration.RegisterAllAreas(); 

    } 

} 

Ciò consentirà il collegamento al vostro Mobile @localhost/{ProjectName}/Mobile/Home

+0

Quindi, non c'è bisogno di creare le Starup.cs? Se ho bisogno di BundleConfig.cs, devo crearlo anch'io? –

+1

Sì, è necessario creare un file di configurazione statico per ciascun aspetto funzionale di MVC che si desidera utilizzare nel sottoprogetto. –

+1

@FelipeCorrea Ho appena eseguito un test con un progetto asp vuoto e tutto ciò che serve è la registrazione dell'area nel Global.asax, che si aggiunge al progetto principale se non esiste già. –

0

Se stavo per mescolare le due cose nello stesso progetto, mi piacerebbe iniziare con un progetto MVC, e hanno le pagine ASP.Net essere all'interno della propria sottocartella.

Ma forse dovresti considerare di avere 2 progetti separati, uno per "applicazione".

Quindi ora un'applicazione separata può essere distribuita a MainApplicationFolder \ SomeSubfolder.

Naturalmente, si potrebbe anche allora prendere in considerazione qualcosa di simile a quanto segue per i link, allora:

@VirtualPathUtility.ToAbsolute("~/SomeController/SomeAction") 
+0

Ricevo il tuo punto, anche se penso che sia opportuno sfruttare le funzionalità del framework. Se puoi usarli insieme e si applica al problema che stai cercando di risolvere, perché complicarlo ulteriormente separando stili, riferimenti javascript e distribuzioni? Dicono (Microsoft) che il One ASP.NET Framework ti permette di iniziare con una qualsiasi delle tecnologie e successivamente di integrare qualsiasi cosa tu voglia: Web API, MVC e Web Forms. Voglio farlo usando queste capacità. –

Problemi correlati