2010-11-10 16 views
7

Viene visualizzato un errore durante l'utilizzo di helper del rasoio in un progetto MVC 3 (è stato inserito il file cshtml in app_code). Sembra che il codice generato stia utilizzando un riferimento di assembly errato.Razor Helper in MVC 3 RC

utilizzando WebMatrix.Data;
utilizzando WebMatrix.WebData;

compilatore dice:

CS0246: Il tipo o dello spazio dei nomi il nome 'WebMatrix' non è stato trovato (stai manca un un riferimento all'assembly direttiva using o?)

metterle in GAC non cambia nulla . Non lo capisco? O questo è un bug? Qualche idea?

risposta

5

È necessario aggiungere un riferimento alla DLL in Web.config.

+0

corretto! grazie. perché non lo considero ... già troppo tardi? – mbr

+0

BTW, se non si utilizzano WebMatrix.Data e WebMatrix.WebData, la risposta di Marcin farà in modo che non sia necessario includere binari inutili. – Haacked

+0

Grazie Phil ... continua a fare il grande lavoro. – mbr

5

mbr, siamo a conoscenza del problema e pianifichiamo di affrontarlo per RTM. Si potrebbe o aggiungere i riferimenti alle assemblee WebMatrix come SLaks suggerite o (e credo che questo è meglio) è sufficiente aggiungere questi 2 spazi dei nomi al progetto aggiungendo il seguente codice:

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
+1

grazie a marcind. – mbr

+1

"CS1527: gli elementi definiti in uno spazio dei nomi non possono essere dichiarati esplicitamente come interni privati, protetti o protetti." Lascia il "privato" fuori da quelle dichiarazioni di classe e funziona bene. –

+0

Ah, ancora meglio. Mi piace adesso –

0

inserisce il codice in un file (io ho scelto Fixup.cs) in questo modo nella directory App_Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace WebMatrix.Data { internal class Ignore { } } 
namespace WebMatrix.WebData { internal class Ignore { } } 
0

si solo bisogno di aggiungere WebMatrix.WebData.dll per i vostri riferimenti.

0

Il riferimento ai file DLL potrebbe essere difficile se non si conosce la posizione esatta dei file DLL o se i file DLL hanno dipendenze. Usa Gestione pacchetti per fare automaticamente riferimento alle dipendenze per te.

Basta semplicemente aprire Strumenti-> Gestore pacchetti libreria-> Gestore pacchetti Manager in Visual Studio & in Gestione pacchetti Tipo di pacchetto "Installa pacchetto WebMatrix.Data" e il gioco è fatto. Segnala questo

http://www.nuget.org/packages/WebMatrix.Data/

Problemi correlati