Tengo un servidor Windows 2003 R2. Tengo que ejecutar un sitio web .NET MVC3. Ya he instalado todos los Runtimes (1,2 y 4), he instalado todos los frameworks MVCs (3 y 4) pero este error no'desaparece.
Tengo el web.config que se supone que debe estar en las Vistas en su lugar. He seguido todas y cada una de las soluciones a este problema dentro y fuera de stackoverflow. También he desplegado en mi carpeta bin todas las dll usando Add Deployable Dependencies (click derecho en el proyecto mvc).
En este punto no sé qué más hacer. Me he quedado sin ideas o soluciones online.
Ya he desinstalado y reinstalado todos los runtimes, frameworks, etc. En mi equipo local se ejecuta sin problemas (Windows 7), pero cuando despliego, me sale el siguiente error.
Mensaje de error del compilador: CS0103: El nombre 'ViewBag' no existe en el contexto actual
Error de origen:
Línea 1: @{
Línea 2: ViewBag.Title = "Página de inicio";
Línea 3: }
Línea 4:
@ViewBag.Message
Source File: d:\FamilyDermMVC\Views\Home\Index.cshtml Line: 2
Parece que te falta lo siguiente en el Web.Config
en la carpeta views:
/Vistas/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>
Las vistas normalmente derivan de System.Web.Mvc.WebViewPage
que se configura en el web.config. Si no está desplegando la DLL con la aplicación, la clase base se encuentra en la siguiente DLL instalada en:
System.Web.Mvc.dll, v4.0.30319
c:Archivos de programa (x86)Microsoft ASP.NETASP.NET MVC 3AssembliesSystem.Web.Mvc.dll
**Actualización 1
Si usted está actualizando manualmente de MVC X a MVC Y y esto requiere cambiar su objetivo .Net Framework (digamos 4.5 a 4.6) que si usted tiene referencias antiguas (punto a MVC 5 en lugar de 6) que, obviamente, los archivos más antiguos no se pueden utilizar en conjunción con los archivos más recientes (por ejemplo, MVC 5 DLLs can't ser utilizado contra System.Web en 4.6).
Veo que esto fue publicado hace un tiempo, pero pensé que iba a añadir mi experiencia con este tema de todos modos.
Al crear un nuevo proyecto MVC asp.net que estaba recibiendo este mismo error de buenas a primeras. Simplemente hice clic en BUILD -> Clean Solution, luego Build Solution y se solucionó el problema para mí. Todavía no estoy muy seguro de por qué el error se produjo en el primer lugar, aunque como error a cabo justo después de que se generó por primera vez.
Ok. Lo he arreglado. No sé exactamente lo que lo arregló, pero supongo que todo esto "9 millas" lo arregla.
He quitado (Quitar Programas) todas las extensiones MVC, herramientas y lo que encuentre allí.
Luego reinstale, sin quitar, .net runtime. 2 y 4.
Luego volví a instalar mvc3 y mvc4. Fui a asp.net para las últimas versiones.
Luego hice lo mismo en mi laptop.
NOTA: Necesitarás Power Shell 2.0 para poder instalar MVC4 en Windows2003 server. Necesitas encontrar la descarga específica para ese servidor.
Una vez hecho esto, recicle el app pool y reinicie el servidor.
BANG... página cargada.
Espero que esto ayude a otras personas en el futuro.
Gracias por sus respuestas thou.
PD: Mi sensación es que no tengo la misma versión (o versiones) de mvc3 (o mvc4) en mi portátil y servidor respectivamente.