Diego
Diego

Reputation: 16714

Visual studio showing syntax errors in razor statements but works

I've a project in MVC 3. It works perfectly and each time I build it, it succeeds. However, Visual Studio insist in showing compile errors in views in each razor syntax. For example:

The name 'model' does not exist in the current context D:\ ... Detail.cshtml

That line is simple:

@model Namespace.DetailViewModel

I've already tried:

Note: I'm using Visual Studio 2012.

Upvotes: 5

Views: 7041

Answers (2)

Miloš Ostojić
Miloš Ostojić

Reputation: 132

Open your web.config file located inside of Views folder and add this section if it's missing:

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

Upvotes: 0

Diego
Diego

Reputation: 16714

I've solved it!

The project was created when the computer didn't have MVC 4 installed yet. After installing it, for some reason, it kept working (despite this).

So what I did was make the changes that should be made in MVC 3 project after installing MVC 4: see here

After that, it compiled and the errors disappeared, however there was an error with the versions of some libraries (System.Web.WebPages, System.Web.WebPages.Razor, and some others). That turned out to be because they had Copy Local set to True. After changing that everything started working great.

Upvotes: 3

Related Questions