Acabei de criar um projeto ASP.NET MVC 4 e usei o Visual Studio 2012 RC para criar um Controller e Razor Views para Index
eCreate
Actions.
Quando vim para executar o aplicativo e naveguei até a Create
exibição, o seguinte erro foi mostrado:
Mensagem de erro do compilador: CS0103: O nome 'Scripts' não existe no contexto atual
O problema é o seguinte código que foi adicionado automaticamente à parte inferior da tela:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Por que os scripts não existem?
Eu olhei para a classe base da página da Web em Assembly System.Web.Mvc.dll, v4.0.0.0
Eu posso ver as seguintes propriedades auxiliares disponíveis:
- Ajax
- Html
- URL
Mas nada chamado Scripts.
Alguma ideia?
EDITAR:
Meu arquivo Web.config é parecido com este (intocado daquele que o Visual Studio criou):
<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:
As pessoas estão blogando sobre o uso do @Scripts
ajudante:
No entanto, tendo acabado de instalar o Visual Studio 2012 RC em uma nova instalação do Windows 8, ainda não consigo usá-lo @Scripts
, embora o Visual Studio o adicione ao modo de exibição gerado!
As soluções são apresentadas abaixo.
Não sei ao certo como encerrar isso, porque no final uma atualização parecia resolver o problema. Verifiquei novamente se havia realizado uma instalação limpa, usando um novo projeto. Mas o mesmo projeto falho que eu fiz funcionou bem agora, depois de várias atualizações e nenhuma intervenção óbvia manual. Obrigado por todos os pensamentos, mas havia definitivamente um problema no momento;)
fonte
<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>
Respostas:
A chave aqui é adicionar
para os dois arquivos web.config. Meu cenário era que eu tinha referência de System.Web.Optimization no projeto e no principal / root web.config, mas o @Scripts ainda não funcionava corretamente. Você precisa adicionar a referência de namespace ao arquivo web.config do Views para fazê-lo funcionar.
ATUALIZAR:
Desde o lançamento do MVC 4 System.Web.Optimization agora está obsoleto. Se você estiver começando com uma solução em branco, precisará instalar o seguinte pacote de nuget:
Você ainda precisará fazer referência ao System.Web.Optimization nos arquivos web.config. Para mais informações, consulte este tópico:
Como adicionar referência ao System.Web.Optimization para o aplicativo MVC-3 convertido em 4
Como muitos apontaram, a reinicialização do VS pode ser necessária após as etapas acima para fazer esse trabalho.
fonte
Install-Package Microsoft.AspNet.Web.Optimization
partir de um modelo em branco do ASP.NET MVC4, pois ele não está incluído por padrão.@Styles
e@Scripts
são 2 novos ajudantes fornecidos porSystem.Web.Optimization
biblioteca. Como o nome sugere, eles agrupam e reduzem arquivos ou recursos CSS e JavaScript, respectivamente.Tente incluir o espaço
System.Web.Optimization
para nome por@using
diretiva ou por meio deweb.config
http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinificationATUALIZAR
A Microsoft mudou o pacote / minificação para um pacote separado chamado
Microsoft.AspNet.Web.Optimization
. Você pode baixar o assembly do nuget .Esta postagem será útil para você.
fonte
System.Web.Optimization
espaço para nome NÃO é descontinuado, oSystem.Web.Optimization.dll
é.Faltava um pequeno passo acima, que encontrei em outro post. Depois de adicionar
nos seus
~/Views/web.config
namespaces, feche e abra novamente o Visual Studio. Era isso que eu tinha que fazer para que isso funcionasse.fonte
Estou usando áreas, e acabei de me deparar com esse problema, copiei os namespaces do root web.config para a web de áreas. config e agora funciona !!
fonte
Eu tive o mesmo problema e usei o WinMerge para me ajudar a descobrir isso. Mas, enquanto eu pesquisava mais, descobri que Rick tinha o post perfeito no blog para ele.
Resumo:
<add namespace="System.Web.Optimization"/>
aos dois arquivos web.configInstall-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
fonte
Eu tive o mesmo problema:
A versão System.Web.Optimization que eu estava usando estava desatualizada para o MVC4 RC.
Atualizei meus pacotes usando o gerenciador de pacotes no VS 2010.
Neste blog do MSDN , o Sr. Andy fala sobre como atualizar seu projeto MVC 4 Beta para o MVC 4 RC. A atualização dos meus pacotes levou os Scripts (principalmente o de otimização da Web) a resolver para mim:
Para instalar o pacote System.Web.Optimization mais recente, use o Console do Gerenciador de Pacotes (Ferramentas -> Biblioteca Gerenciador de Pacotes -> Console do Gerenciador de Pacotes) e execute o comando abaixo:
Use o arquivo System.Web.Optimization incluído no pacote em suas referências.
Para atualizar outros pacotes: Menu Ferramentas -> Gerenciador de Pacotes de Biblioteca -> Gerenciar Pacotes NuGet para Solução.
fonte
Crie um novo aplicativo de internet MVC 4 RC e execute-o. Navegue para Login que usa o mesmo código
O que permite que o Login.cshtml funcione é o arquivo Views \ Web.config (não a versão raiz do aplicativo) contém
Por que sua visualização Criar não está funcionando e o Login está?
fonte
Importe System.Web.Optimization na parte superior da sua exibição de navalha da seguinte maneira:
fonte
Corri para este problema, no entanto, ao executar o comando:
Recebi a mensagem enigmática (tenho que amar um grande trocadilho antes da primeira xícara de café):
Estou executando isso no Windows XP SP3 (não por opção) e o que descobri foi que eu tinha que seguir as instruções postadas pelo usuário artsnob no Fórum ASP.NET
Depois de executar isso, eu poderia executar a linha de comando para atualizar o Web.Optimization.
Espero que isso poupe alguém a cavar.
fonte
Apenas escreva
fonte
Atualizei do Beta para o RC e enfrentei o tópico 'Scripts' não existe. Naveguei por toda a web e a solução final foi o que o N40JPJ disse, além de outra solução alternativa:
Copie o seguinte em View \ Web.config:
e o seguinte em View \ Shared_Layout.cshtml
Espero que ajude.
fonte
if (IsSectionDefined())
menos que você esteja fornecendo umaelse
cláusula. O fato de você estar dizendorequired: false
já permite que essa seção não seja definida e, nesse caso, a seção será omitida. Portanto, este é um código extra desnecessário.Aparentemente, você criou um tipo de projeto 'Vazio' sem a pasta 'Scripts'. Meu conselho - crie um tipo de projeto 'Básico' com a pasta 'Scripts' completa.
Com relação a todos os desenvolvedores.
fonte
basta remover / ocultar o código da tela de criação e edição do seu controlador.
fonte
boa sorte...
fonte
Mais um para o pote - passamos idades tentando resolver o mesmo problema - mesmo que ele tenha sido definido no web.config para root e a raiz do Views. Acontece que eu o adicionei por engano ao elemento
<system.web><pages><namespaces>
, e não ao<system.web**.webPages.razor**><pages><namespaces>
elemento.Realmente fácil perder isso!
fonte
Quando entro em uma página que possui esse código:
Este erro ocorre: Erro. Um erro ocorreu durante o processamento do seu pedido.
E essa exceção está registrada nos meus logs:
Eu tentei todas as dicas desta página e nenhuma delas foi resolvida por mim. Então, olhei na minha pasta Packages e notei que tenho duas versões para o System.Web.Optmization.dll:
Meu projeto estava fazendo referência à versão beta mais antiga. Eu mudei apenas a referência para a versão mais recente (69KB) e tudo funcionou bem.
Eu acho que isso pode ajudar alguém.
fonte
Isso tem uma solução óbvia. Eu tive o mesmo problema mais tarde. Não está relacionado às referências de montagem ou ... .Isso ocorrerá na chamada hierárquica das visualizações Parciais do MVC, quando você tiver estruturas de página complicadas. Portanto, chamar / renderizar cada parte separadamente em cada página (talvez uma página mestra ou parcial) fará com que não veja partes necessárias da página, como o código a seguir:
Isso simplesmente força a página a encontrar e processar a seção relacionada e, em caso de falha, mostra uma mensagem de erro como você.
Portanto, sugiro que você rastreie suas páginas (como o rastreio de programa) do mestre para todas as suas partes parciais para Detectar dependências . Talvez seja um trabalho terrível, mas não há outras opções disponíveis aqui.
Não que, de acordo com minha experiência, algumas situações condicionais na programação façam com que você não mostre o erro correto que causa o problema.
fonte
Eu tive esse problema depois de adicionar uma área a um projeto que não tinha nenhum. Para se livrar dele, basta copiar o web.config dentro da pasta Views raiz para a pasta Views da área e começar a funcionar.
fonte
Resolvo esse problema no MvcMusicStore adicionando esta parte do código em _Layout.cshtml
e remova esse código do Edit.cshtml
Execute o programa que o inshallah funcionará com você.
fonte
Para mim, isso resolveu o problema, no console do gerenciador de pacotes do NuGet, escreva o seguinte:
fonte
Quando comecei a usar o MVC4 recentemente, enfrentei o problema acima ao criar um projeto com os modelos vazios. Etapas para corrigir o problema.
TOOLS
->Library Package Manager
->Packager Manager Console
Cole o comando abaixo e pressione enterInstall-Package Microsoft.AspNet.Web.Optimization
Nota: aguarde a instalação bem-sucedida.<namespace="System.Web.Optimization" />
O pacote mencionado na etapa 1 adicionará poucas bibliotecas do sistema às referências da solução, como System.Web.Optimization não é uma referência padrão para modelos vazios no MVC4.
Eu espero que isso ajude. Obrigado
fonte
Ocorreu um erro muito semelhante ao atualizar um projeto do MVC3 para o MVC4.
No meu caso, eu havia desatualizado os números de versão em vários dos meus Web.Configs.
Ex:
Certifique-se de revisar o Web.Configs em cada um dos diretórios do Views.
Você pode ler mais sobre a atualização de um projeto do ASP.NET MVC 3 para o ASP.NET MVC 4 .
fonte
Se você adicionou ao seu web.config e ele ainda mostra uma mensagem, é necessário fechar o seu projeto e reabri-lo, agora ele existirá e @ Styles.Render ("") e @ Scripts.Render () funcionarão bem.
fonte
Tente o seguinte:
fonte