C# ';System.Web.WebPages.Html.HtmlHelper';不包含';ActionLink

C# ';System.Web.WebPages.Html.HtmlHelper';不包含';ActionLink,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,首先-我搜索了这么多,发现很多问题都问同样的问题,只是简单地添加了 我已经将MVC升级到版本5,将webApi升级到版本2,以便与解决方案中的其他项目保持一致 现在,在SPA站点的_布局页面中,我尝试使用@Html.ActionLink帮助程序,尽管不断得到错误“System.Web.WebPages.Html.HtmlHelper”不包含“ActionLink 我确信这都是由于一些web.config配置造成的——我安装的软件包与模板中的配置之间存在某种冲突 特别是,本部分: <syst

首先-我搜索了这么多,发现很多问题都问同样的问题,只是简单地添加了

我已经将MVC升级到版本5,将webApi升级到版本2,以便与解决方案中的其他项目保持一致

现在,在SPA站点的_布局页面中,我尝试使用
@Html.ActionLink
帮助程序,尽管不断得到错误
“System.Web.WebPages.Html.HtmlHelper”不包含“ActionLink

我确信这都是由于一些web.config配置造成的——我安装的软件包与模板中的配置之间存在某种冲突

特别是,本部分:

<system.web.webPages.razor>
    <host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.WebPages.WebPage">
      <namespaces>            
        <add namespace="System.Web.Helpers" />
        <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" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

您是否尝试过清理解决方案,删除位于的临时ASP.NET文件

C:\WINDOWS\Microsoft.NET\Framework\v4.xxxx\ASP.NET临时文件


和重建?

我刚刚安装了Visual Studio 2013的更新2,我的问题消失了。

我正在使用VS 2013 Pro更新2。这就是我的工作原理:

  • 关闭Visual Studio
  • 删除bin和obj文件夹
  • 重新打开解决方案并重建
  • 视图上不再有错误

  • 顺便说一句,不需要对配置文件进行任何更改,简单的清理和重建解决方案不起作用。

    我正在处理VS 2015,我解决了这个问题

    您需要检查Views/Web.Config文件。如果配置文件不存在,您可以复制另一个项目。在需要更改上的命名空间之后

    -----**Views/Web.Config**---------

    
    
    -----**Views/Web.Config**---------


    如果您有配置文件,只需检查名称空间名称。

    ,packages.config文件中的所有内容都匹配吗?在配置的“运行时”部分,您可以尝试添加以将旧版本的assemply更改为新的添加到哪个dependentAssembly?-一切看起来都很匹配,尽管现在看起来都很模糊——已经盯着它看了几个小时了。。这是我在config的runtime部分下用来确保正在使用assemply的完整代码。几周前,我在从Web API 1到Web API 2的升级过程中遇到了类似的问题,这就解决了问题。@Dan您的解决方案不适用于区域内的视图。我在web.config中添加了“runtime”部分,用于该区域的视图,但没有成功。有什么想法吗?这对我在VS 2012上有效,还删除了ASP.NET临时文件。我在这件事上浪费了2个小时。最后删除了bin、obj和voila。解决方案构建并运行良好。
    <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>
    
    Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.
    
    
    === Pre-bind state information ===
    LOG: DisplayName = System.Web.WebPages.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
     (Fully-specified)
    LOG: Appbase = file:///D:/Development/IS/IS/IS.TransactionDesk.SPA/
    LOG: Initial PrivatePath = D:\Development\IS\IS\IS.TransactionDesk.SPA\bin
    Calling assembly : (Unknown).
    ===
    LOG: This bind starts in default load context.
    LOG: Using application configuration file: D:\Development\IS\IS\IS.TransactionDesk.SPA\web.config
    LOG: Using host configuration file: C:\Users\Darren\Documents\IISExpress\config\aspnet.config
    LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
    LOG: Post-policy reference: System.Web.WebPages.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    LOG: Attempting download of new URL file:///C:/Users/Darren/AppData/Local/Temp/Temporary ASP.NET Files/root/3407d437/8e7ba9a/System.Web.WebPages.Razor.DLL.
    LOG: Attempting download of new URL file:///C:/Users/Darren/AppData/Local/Temp/Temporary ASP.NET Files/root/3407d437/8e7ba9a/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL.
    LOG: Attempting download of new URL file:///D:/Development/IS/IS/IS.TransactionDesk.SPA/bin/System.Web.WebPages.Razor.DLL.
    WRN: Comparing the assembly name resulted in the mismatch: Major Version
    ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
    
    Stack Trace: 
    
    
    [FileLoadException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0
       System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) +70
       System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) +39
       System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +37
       System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +65
       System.Web.WebPages.Razor.WebRazorHostFactory.DefaultTypeFactory(String typeName) +39
       System.Web.WebPages.Razor.WebRazorHostFactory.CreateFactory(String typeName) +67
       System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +72
       System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfigCore(RazorWebSectionGroup config, String virtualPath, String physicalPath) +313
       System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath, String physicalPath) +228
       System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath) +38
       System.Web.WebPages.Razor.RazorBuildProvider.GetHostFromConfig() +51
       System.Web.WebPages.Razor.RazorBuildProvider.CreateHost() +57
       System.Web.WebPages.Razor.RazorBuildProvider.get_Host() +56
       System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode() +77
       System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() +54
       System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +59
       System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +209
       System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +30
       System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +9881909
       System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +299
       System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +103
       System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +165
       System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +43
       System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(String virtualPath, Type requiredBaseType) +28
       System.Web.WebPages.BuildManagerWrapper.CreateInstanceOfType(String virtualPath) +343
       System.Web.WebPages.VirtualPathFactoryExtensions.CreateInstance(IVirtualPathFactory factory, String virtualPath) +236
       System.Web.WebPages.VirtualPathFactoryManager.CreateInstanceOfType(String virtualPath) +261
       System.Web.WebPages.VirtualPathFactoryExtensions.CreateInstance(IVirtualPathFactory factory, String virtualPath) +132
       System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(String virtualPath, IVirtualPathFactory virtualPathFactory) +58
       System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(String virtualPath) +59
       IS.TransactionDesk.SPA.Routing.DefaultRouteHandler.GetHttpHandler(RequestContext requestContext) in d:\Development\IS\IS\IS.TransactionDesk.SPA\Routing\DefaultRouteHandler.cs:42
       System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +9598252
       System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
       System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
    
    <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" />
            <add namespace="YourProjectName" />
    </namespaces>