KernelSanders213
KernelSanders213

Reputation: 147

Upgrading Webforms to MVC: Razor Namespace in view web.config not working

Background: I am upgrading a Webforms project to an MVC. I want to do it slowly so I have added every thing I need to the project for MVC. One issue that I am having is with the Web.config in the Views folder. I have added the follow to the Views/Web.config file:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.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=4.0.30319.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.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

Issue: When I type things in the view such as @Viewbag and @Styles I get the red line under them that's simply saying that they don't exist. Others like @Html and @RenderBody() work just fine.

Assumption: I believe that the Views/Web.config is not working correctly. I think that none of the namespaces are being used in the views. Could it be that I need to add a reference to it somewhere.

Upvotes: 2

Views: 1434

Answers (1)

mason
mason

Reputation: 32694

It compiles fine, the problem is that your Intellisense isn't working. You can get it to update by forcing the Razor pages to compile with each build, as described in my answer here.

Upvotes: 1

Related Questions