asp.net - ventajas - viewbag
"El nombre ''HTML'' no existe en el contexto actual" en MVC 3 Vistas (16)
Estoy empezando a usar "MVC 3" pero estoy enfrentando algunos pequeños problemas. En mis Vistas, cuando codifico algo como esto:
@if(Request.IsAuthenticated) {
<text>Welcome <b>@Context.User.Identity.Name</b>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else {
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}
Los objetos como @Request y @Html indican un error: The name ''HTML'' does not exist in the current context
.
Lo mismo ocurre con @Context, @ViewBag, @Layout, @Url y otros.
Ver:
imagen http://i56.tinypic.com/28s1smp.jpg
Pero el código está correctamente compilado sin errores. El problema es que no puedo usar el Intellisense con estos objetos en las Vistas. ¿Es normal? (No lo creo). ¿Qué podría estar pasando?
He reinstalado el framework MVC 3 pero todavía ocurre lo mismo.
Nota: este es un nuevo proyecto desde cero, no una migración MVC 2. Esto ocurre tanto con el motor Razor como con ASPX.
Este es el Web.Config en la carpeta Vistas:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<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">
<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>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
¡Gracias!
Disculpas por el post necro.
Al seleccionar "Crear | Reconstruir solución", corregí este problema en Visual Studio 2015. En mi caso, las advertencias se produjeron después de cambiar el nombre del espacio de nombres principal de un proyecto. Una reconstrucción puso todo en orden.
En mi caso, faltaba la carpeta de Paquetes, incluyendo MVC y Razor, así que actualicé los paquetes en packages.config, volví a abrir la vista y funcionó.
Establezca la propiedad de System.Web.MVC, Copy Local = True
Estoy usando ASP .net core. Resolví la mía actualizando Microsoft.AspNetCore.Mvc
de 1.1.2
a 1.1.3
.
He resuelto este problema con la solución predeterminada de Microsoft, buena y sabia: reinstalar todas las cosas nuevamente.
Desinstale y vuelva a instalar Visual Studio 2010 y MVC 3 Framework.
Intenté eliminar el proyecto que aún está en problemas de la solución y volver a agregarlo, después de lo cual el problema había desaparecido.
Limpie su solución y bajo referencias. A continuación, establezca la siguiente propiedad:
System.Web.MVC file to Copy Local = True.
Lo que funcionó para mí fue cerrar Visual Studio, eliminar los archivos de opciones del usuario (tanto a nivel de solución como de proyecto) y luego volver a iniciar Visual Studio.
Para mí, acabo de reiniciar mis estudios visuales y todo se arregló.
Para mí, esto solo parecía ser el hecho de que tenía advertencias del compilador. El código aún se compilaría y ejecutaría bien, pero no fue hasta que reparé todas las advertencias de compilación que mi Intellisense comenzó a funcionar.
Tal vez llegue un poco tarde para responder esta pregunta, pero esta solución fácil me ayudó:
Haga clic derecho en el archivo> Excluir del proyecto. Haga clic derecho en el archivo> Incluir en proyecto.
También experimenté esto en ASP.NET MVC 4, después de desinstalar EntityFramework de mi lista de paquetes.
Tuve que quitar esta sección
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, ....
eso queda en el archivo Web.config ... al menos eliminó los errores de la lista de errores
Todo lo que tenía que hacer era cerrar todas las vistas que estaban abiertas en el editor y reconstruir.
Tu podrías intentar:
Cierra la
View
con los errores falsos.Cerrar
Visual Studio
Reabrir el mismo proyecto.
Abre una
View
diferente y luego la que causa los errores.Cierre esa
View
, es de esperar que no haya visto ninguno de los errores similares en estaView
Vuelva a abrir la
View
que le dio problemas antes
Tuve este mismo problema en MVC 4. Ninguna de estas soluciones funcionó para mí. En cambio, en Windows, entré en el Panel de control -> Desinstalar un programa. Seleccione Microsoft ASP.NET MVC 4 en la lista de programas. Haga clic en ''Desinstalar''. Aparecerá un asistente de "Configuración de Microsoft ASP.NET MVC 4". Haga clic en ''Reparar''.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
Solución para este problema en web.config.