MVC System.Web.HttpCompileException on Html.RenderPartial

Niels Filter picture Niels Filter · Jul 24, 2015 · Viewed 14.7k times · Source

I'm getting an System.Web.HttpCompileException when the my view calls Html.RederPartial. The exception message is:

Additional information: External component has thrown an exception.

I've checked that the:

  • Controller doesn't throw an exception
  • Partial view does exist
  • The Model passed by controller and received by the view is the same.
  • The InnerException is null

The exception sounds like it should be that the html or razor is malformed or incorrect, but the solution builds fine. It was also working not too long ago, so I'm guessing, I'm missing something silly...

My question:

Does anyone know how to know what causes this exception? Or is there a way to get more information on the exception?

Edit: Here's the StackTrace

at System.Web.Compilation.AssemblyBuilder.Compile() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean ...

Answer

Niels Filter picture Niels Filter · Jul 24, 2015

Turns out it was a silly mistake on my part. MVC couldn't compile the Html from Razor because I had renamed a property within my Model, but didn't update it in the .cshtml.

Turn on Razor Build errors at compile time. Edit your csproj file and set the following:

<MvcBuildViews>true</MvcBuildViews>

Thanks to JP for this SO post.