2013-03-21 26 views
36

Ho un server Windows 2003 R2. Devo eseguire un sito Web .NET MVC3. Ho già installato tutti i Runtimes (1,2 e 4), ho installato tutti i framework MVCs (3 e 4) ma questo errore non scompare.Il nome 'ViewBag' non esiste nel contesto corrente

Ho il web.config che dovrebbe essere nella vista in posizione. Ho seguito tutte e tutte le soluzioni a questo problema dentro e fuori lo stackoverflow. Ho anche distribuito nella mia cartella bin tutte le DLL usando Aggiungi dipendenze deployabili (tasto destro del mouse sul progetto mvc).

A questo punto non so cos'altro fare. Esaurito da idee o soluzioni online.

Ho già disinstallato e reinstallato tutti i runtime, i framework, ecc. Nel mio computer locale funziona perfettamente (Windows 7) ma quando eseguo il deploy, viene visualizzato un errore.

Compiler Error Message: CS0103: The name 'ViewBag' does not exist in the current context

Source Error:

Line 1: @{

Line 2: ViewBag.Title = "Home Page";

Line 3: }

Line 4: <h2>@ViewBag.Message</h2>

Source File: d:\FamilyDermMVC\Views\Home\Index.cshtml Line: 2

+0

Sarebbe molto utile includere il proprio web.config e le viste \ web.config (rimuovere eventuali dati sensibili). –

+0

Non ho capito la situazione reale, ma nel mio caso sono entrato nelle Proprietà selezionato un precedente framework di destinazione (da 4.6 a 4.5.2, ricompilato e tutto è scomparso.Poi sono tornato a 4.6 facendo la stessa cosa. –

risposta

1

Ok. L'ho riparato. Non so esattamente cosa lo ha risolto, ma immagino che tutto questo "9 miglia" lo risolva.

Ho rimosso (Rimuovi programmi) tutte le estensioni MVC, gli strumenti e tutto ciò che si trova lì.

Quindi reinstallato, senza rimuovere, .net runtime. 2 e 4.

Quindi installato mvc3 e mvc4 indietro. Sono andato su asp.net per le ultime versioni.

Quindi ho fatto la stessa cosa nel mio portatile.

NOTA: per installare MVC4 nel server Windows2003 è necessario Power Shell 2.0. Devi trovare il download specifico per quel server.

Una volta eseguita questa operazione, pool di app riciclato e server riavviato.

BANG ... pagina caricata.

Spero che questo aiuti altre persone in futuro.

Grazie per le vostre risposte.

PS: La mia sensazione è che non ho avuto la stessa versione (o versioni) di mvc3 (o mvc4) nel mio laptop e server rispettivamente.

+5

[Segna la tua risposta come accettata] (http://meta.stackexchange.com/a/5235). –

+0

Non vedi che ho spiegato l'intero processo ? –

69

Suona come vi state perdendo quanto segue nel Web.Confignella cartella vista:

/Views/Web.Config

<?xml version="1.0"?> 

<configuration> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

     <pages pageBaseType="System.Web.Mvc.WebViewPage"> // <-- this line and contents are important 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
     </namespaces> 
     </pages> 

    </system.web.webPages.razor> 

Visualizzazioni tipicamente derivano da System.Web.Mvc.WebViewPage che è configurato nel web.config. Se non si distribuisce la DLL con l'applicazione, la classe di base è il seguente DLL installati in:

Assembly System.Web.Mvc.dll, v4.0.30319

c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll

Update 1

Se si esegue l'aggiornamento manualmente da MVC X MVC Y e questo richiede di cambiare il tuo obiettivo .Net Framework (diciamo 4.5 a 4.6) che se hai riferimenti vecchi (punta a MVC 5 invece di 6) che ovviamente i file più vecchi non possono essere usati insieme ai file più recenti (es. MVC 5 DLL non possono essere usato contro System.Web in 4.6).

+0

Quella parte OK, leggi la mia risposta a questo: Grazie mille –

+2

Per me ... il mio /Views/Web.config è stato contrassegnato come "nessuno" invece di "contenuto" (per l'azione Crea).L'ho cambiato, ri-distribuito e ha funzionato bene. –

+3

L'aggiornamento del numero di versione su ' Jay

4

Vedo che è stato postato un po 'indietro, ma ho pensato di aggiungere comunque la mia esperienza con questo problema.

Dopo aver creato un nuovo progetto MVC asp.net, ho ricevuto lo stesso errore subito. Ho semplicemente fatto clic su BUILD -> Clean Solution, quindi Build Solution e ha risolto il problema per me. Non sono ancora del tutto sicuro del motivo per cui l'errore si sia verificato in primo luogo, anche se è stato erroneamente generato subito dopo la sua prima generazione.

+0

Sono venuto anche qui per dire questo: non del tutto sicuro di cosa stia causando ciò che accade nel mio VS. – Johnrad

0

Nel mio caso ho avuto questo problema perché stavo cercando di eseguire un progetto MVC 3 nella piattaforma abilitata MVC 2.

poi ho installato MVC 3 sul mio sistema un problema andato via

5

Ho avuto lo stesso tipo di problema (codice helper html non riconosciuto).

io non sono sicuro di come è iniziato, ma ho risolto sostituendo il seguente:

<appSettings> 
    <add key="webpages:Enabled" value="false" /> 
</appSettings> 

con

<appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
</appSettings> 

nel file web.config viste.

trovato la mia soluzione here

1

Sembra che ci sono molte soluzioni e il tasso di successo di ciascuna è misto.

Per me, cambiando il numero di versione su questa linea del/ file di Visualizzazioni web.config lavorato:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

ho cambiato 4.0.0.0 a 5.0.0.0, salvato, chiuso la soluzione, riaperta, quindi voilà! I ghirigori rossi fastidiosi erano gones e l'intellisense restituiti

1

ReSharper è probabilmente causando

Vai a Visual Studio/Strumenti/Opzioni/ReSharper Quindi fare clic Sospensione Ora/poi Riprendi ReSharper e la vostra il giorno non sarà più grigio ma probabilmente la tua finestra del rasoio avrà più grigio in esso!

+0

ha funzionato per me, grazie –

0

A volte chiudendo la vista, Ricostruisci, Apri la vista aiuta.