Estou tentando usar o ViewBag em meu aplicativo, tenho todas as dlls recentes, a versão mais recente do MVC 3, mas ainda estou recebendo o erro:
"O nome 'ViewBag' não existe no contexto atual"
Eu até desinstalei e reinstalei o MVC 3 e ainda não houve nenhuma mudança.
Além disso, não acredito que as dll's estejam aparecendo no GAC.
Qual pode ser o meu problema? Ou como adicionar dll's ao GAC?
dll
asp.net-mvc-3
gac
viewbag
fugindo
fonte
fonte
Respostas:
Você precisa adicionar a configuração do Razor específica do MVC ao seu web.config. Veja aqui: Razor HtmlHelper Extensions (ou outros namespaces para visualizações) não encontrado
Use a ferramenta de atualização MVC 3 para garantir automaticamente que você tenha os valores de configuração corretos.
fonte
~/Views
local normal , copie o~/Views/Web.config
para esse local também.Eu estava tendo o mesmo problema. Descobri que estava faltando o
./Views/Web.config
arquivo, porque criei o projeto a partir de um aplicativo ASP.NET vazio em vez de usar um modelo ASP.NET MVC.Para ASP.NET MVC 5, um
./Views/Web.config
arquivo vanilla contém o seguinte:Adicionar um
./Views/Web.config
arquivo com esse conteúdo resolveu esse problema para mim.fonte
<add namespace="System.Web.Optimization"/>
Tente limpar e reconstruir. Funcionou no meu caso.
fonte
Tive o mesmo problema em uma solução que foi atualizada para MVC 5 no Visual Studio 2015.
No arquivo web.config da pasta Views (não no web.config raiz), atualizei o número da versão referido em
<configSections>
de2.0.0.0
para3.0.0.0
.fonte
Depois de tentar coisas diferentes, descobri que era o cache do VS. Você pode resolver isso excluindo os arquivos de cache localizados em:
Fechei meu projeto, apaguei os arquivos daquele caminho e reabri meu projeto, limpei a solução e a construí novamente e o problema foi resolvido
Os arquivos serão recriados na próxima vez que você iniciar o Visual Studio
fonte
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
Eu tive o mesmo problema e o crimbo me deu a pista certa, foi causado pelo arquivo ./Views/Web.config que estava presente, mas não contém os namespaces corretos, eu acho ...
Eu criei um projeto MVC5 em branco e importei seu ./Views/Web.config em meu projeto existente e as ondas vermelhas em cada uso de ViewBag sumiram!
fonte
Se você usa Visual Studio 2013 e gosta de usar MVC 3, receberá este erro porque o Visual Studio 2013 não oferece suporte nativo a MVC 3 (mesmo que você altere ./Views/web.config), apenas MVC 4: https: // msdn .microsoft.com / en-us / library / hh266747.aspx
fonte
Eu tinha um
./Views/Web.Config
arquivo, mas esse erro aconteceu após a publicação do site. Acontece que a propriedade de ação de construção no arquivo foi definida como emNone
vez deContent
. Alterar isso paraContent
permitir que a publicação funcione corretamente.fonte
Tive esse problema depois de alterar o namespace padrão do aplicativo na caixa de diálogo Propriedades.
O ./Views/Web.Config continha uma referência ao antigo namespace
fonte
No meu caso, alterar a página da web: Versão para o valor adequado resolveu meu problema, para mim o valor correto era (2.0.0.0 em vez de 3.0.0.0):
fonte
Depois de tentar todas as abordagens, nenhuma delas funcionou para mim, pois tudo que eu tinha eram configurações corretas. finalmente
Excluir todos os arquivos de "temp" e "% temp%" do sistema ajudou a resolver esse problema.
Abra o comando Executar (Windows + R), digite as strings acima e exclua todos os arquivos temporários.
fonte
Se você tentou todas as respostas disponíveis e ainda não conseguiu encontrar a resposta, isso pode resolver o problema. Se você tiver diferentes configurações de soluções como Debug, Release etc, defina o caminho de saída do projeto para 'bin' e compile o projeto. Reverta a alteração após compilar.
VS procura dlls na pasta bin
fonte
Eu já havia tentado deletar o arquivo bin e obj e reiniciar o VS e não tive sorte.
Eu também já tive esse problema muitas vezes e é difícil resolvê-lo a cada vez. Freqüentemente, é devido ao arquivo web.config não ter a versão correta de uma das referências. Isso significa clicar na referência no Visual Studio para ver a versão na guia de propriedades e, em seguida, combiná-la com a versão nos arquivos web.config.
Outra maneira é (se possível) atualizar para uma versão posterior da estrutura .net e, em seguida, excluir os arquivos bin / obj e reiniciar o Visual Studio. Eu só posso supor que está mudando algo no
Uma verificação rápida da diferença entre o arquivo csproj não mostra nenhuma grande diferença ... Mas as diferenças que ele mostrou foram (adicionei (removi) para mostrar a linha antiga)
No arquivo Web.Config (não aquele na Visualização)
Ele também adicionou (ao mesmo arquivo web.config), mas eu o removi manualmente
Finalmente, no console do gerenciador de pacotes, adicione
update-package
Execute o site localmente e veja quaisquer erros de compilação que foram corrigidos pelo meu segundo parágrafo (correspondendo às versões das referências)
fonte
Atualizei as páginas da web: Versão na pasta ./Views/Web.Config, mas essa configuração também estava presente em web.config na raiz. Atualize ambos ou remova do web.config raiz
fonte
Como já mencionado @Wilson Vallecilla. Siga as etapas abaixo para excluir o cache:
Siga o caminho abaixo para descobrir os arquivos:
Fechei meu projeto, apaguei os arquivos daquele caminho e reabri meu projeto, limpei a solução e a construí novamente e o problema foi resolvido
Excluir seus arquivos ASP.NET temporários também ajuda. Arquivos ASP.NET C: \ Users \ your.name.here \ AppData \ Local \ Temp \ Temporary.
Isso funciona para mim.
Obrigado!
fonte
Para MVC5, caso você esteja construindo um aplicativo do zero. Você precisa adicionar um arquivo web.config à pasta Views e colar o seguinte código nele.
Observe que para MVC 3 você terá que alterar a versão para 3.0.0.0 em
Pode ser necessário fechar e abrir a página * .cshtml novamente para ver as alterações.
fonte