Ho appena creato un progetto ASP.NET MVC 4 e ho utilizzato Visual Studio 2012 RC per creare viste Controller e Razor Index
e Create
azioni.
Quando sono arrivato a eseguire l'applicazione e ho visualizzato la Create
vista, è stato visualizzato il seguente errore:
Messaggio di errore del compilatore: CS0103: Il nome "Script" non esiste nel contesto corrente
Il problema è il seguente codice che è stato aggiunto automaticamente nella parte inferiore della vista:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Perché gli script non esistono?
Ho esaminato la classe della pagina Web di base in Assembly System.Web.Mvc.dll, v4.0.0.0
Sono disponibili le seguenti proprietà di supporto:
- Ajax
- html
- url
Ma niente di nome Script.
Qualche idea?
MODIFICARE:
Il mio file Web.config è simile al seguente (intatto da quello creato da Visual Studio):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<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>
EDIT # 2:
Le persone stanno bloggando sull'uso @Scripts
dell'helper:
Tuttavia, avendo appena installato Visual Studio 2012 RC su una nuova installazione di Windows 8, non riesco ancora a utilizzare @Scripts
anche se Visual Studio lo aggiunge alla visualizzazione generata!
Le soluzioni sono presentate di seguito.
Non sono sicuro di come chiudere questo, perché alla fine un aggiornamento sembrava risolvere il problema. Ho ricontrollato di aver eseguito un'installazione pulita, utilizzando un nuovo progetto. Ma lo stesso progetto fallito che avevo realizzato ora funziona bene dopo vari aggiornamenti e nessun intervento ovvio manuale. Grazie per tutti i pensieri ma all'epoca c'era sicuramente un problema;)
<system.web.webPages.razor> <pages pageBaseType=""> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> etc... </pages>