Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The name 'HTML' does not exist in the current context" in MVC 3 Views

I´m starting to use "MVC 3" but I´m facing some little problems. In my Views, when I code something like this:

@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") ] } 

The objects like @Request and @Html is indicating an error: The name 'HTML' does not exist in the current context.

The same occurs with @Context, @ViewBag, @Layout, @Url and others.

See:

image

But the code is correctly compiled with no errors. The problem is that I cannot use the Intellisense with theses objects in the Views. Is it normal? (I don´t think so). What could be happening?

I have reinstalled the MVC 3 framework but the same still occurs.

Note: this is a new project from scratch, not a MVC 2 migration. This occurs both with Razor engine and ASPX.

This is the Web.Config in the Views folder:

<?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> 

Thanks!

like image 676
outlookrperson Avatar asked Jul 01 '11 13:07

outlookrperson


People also ask

How can I get data from Web API in MVC controller?

First of all, create MVC controller class called StudentController in the Controllers folder as shown below. Right click on the Controllers folder > Add.. > select Controller.. Step 2: We need to access Web API in the Index() action method using HttpClient as shown below.

What is Web API in MVC with example?

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the . NET Framework.


2 Answers

You could try:

  1. Close the View with the false errors.

  2. (Steps 2-5 are sometimes optional) Close Visual Studio

  3. Delete the bin and obj folders in all the Projects in the Solution.

  4. Reopen the same Solution

  5. Rebuilt the Solution

  6. Open a different View then the one causing the errors

  7. Close that View, hopefully you didn't see any of the similar errors in this View

  8. Reopen the View that gave you problems earlier

like image 169
Serj Sagan Avatar answered Sep 27 '22 18:09

Serj Sagan


I have solved this issue with the old, good, wise Microsoft default solution: reinstall all the things again.

Uninstall and Reinstall the Visual Studio 2010 and MVC 3 Framework.

like image 22
outlookrperson Avatar answered Sep 27 '22 16:09

outlookrperson