Mvc 5.1 MissingMethodException System.Web.WebPages.TypeHelper.ObjectToDictionaryUncached

时间:2014-01-27 08:41:33

标签: asp.net-mvc-5 asp.net-mvc-5.1

我将我的MVC5项目更新为MVC5.1,现在在路由字典上有例外:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

堆栈跟踪:

{"Method not found: 'System.Web.Routing.RouteValueDictionary System.Web.WebPages.TypeHelper.ObjectToDictionaryUncached(System.Object)'."}

at System.Web.Mvc.RouteCollectionExtensions.CreateRouteValueDictionaryUncached(Object values)
at System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute(RouteCollection routes, String url, Object constraints)
at System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute(RouteCollection routes, String url)
at WebApplication1.RouteConfig.RegisterRoutes(RouteCollection routes) in c:\Users\aivanov\Documents\Visual Studio 2013\Projects\WebApplication1\WebApplication1\App_Start\RouteConfig.cs:line 14
at WebApplication1.MvcApplication.Application_Start() in c:\Users\aivanov\Documents\Visual Studio 2013\Projects\WebApplication1\WebApplication1\Global.asax.cs:line 17

5 个答案:

答案 0 :(得分:16)

在参考文献中,我发现 System.Web.WebPages.dll 版本 3.0.11001.0 显示此类错误,但当我用系统替换它时.Web.WebPages.dll 版本 3.0.20129.0 它的工作原理。所以,您应该从引用中删除旧版本,然后下载其他版本,而不是清洁解决方案重建,它将起作用。

答案 1 :(得分:1)

在我的案例中帮助删除临时文件夹中的文件" C:\ Users {yourprofilename} \ AppData \ Local \ Temp \ Temporary ASP.NET Files \"

答案 2 :(得分:0)

请确保您参考: 使用System.Web.Http; (c)中
要么 Imports System.Web.Http(vb)

位于App_Start目录中RouteConfig文件的顶部。

除此之外,虽然标题有点偏离主题,但您可能会在MS上的此链接中找到您所寻找的内容:http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs - 希望这会让您朝着正确的方向前进!如果您有其他详细信息,请告诉我,我将非常乐意继续尝试帮助!

希望一切顺利。

答案 3 :(得分:0)

除了@Leonardo建议的步骤之外,我还必须将以下内容添加到我的Web.config中:

<compilation debug="true" targetFramework="4.5.1">
    <assemblies>
        <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"></add>
    </assemblies>
</compilation>

答案 4 :(得分:0)

我重新安装了Microsoft Asp.Net MVC的nuget软件包,它对我有用。我不确定,但我认为升级MVC版本后会出现此问题。 所以重新安装nuget包就可以了。