我正在从Asp.net MVC4 beta到Asp.net MVC4进行迁移工作,但是我遇到了dll引用丢失的问题。请帮帮我。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
);
}
上面的代码无法成功编译,Visual Studio说System.Web.Routing.RouteCollection' does not contain a definition for 'MapHttpRoute' and no extension method 'MapHttpRoute' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?)
更重要的是经常发生这种问题。因为Asp.net MVC的版本在这些日子里变化如此频繁。 Windows Azure客户端ApI的版本也是如此。这是非常烦人的问题。我希望有人可以就如何处理它提出一些建议。感谢。
答案 0 :(得分:3)
我通过在RouteConfig.cs中添加对System.Web.Http的引用来解决它。
答案 1 :(得分:3)
我遇到了同样的问题,但无法通过添加对System.Web.Http的引用来修复它。我仍然收到同样的错误:System.Web.Routing.RouteCollection' does not contain a definition for 'MapHttpRoute'
。
我相信这是因为在最新版本的MVC4中,不再支持MapHttpRoute。
事实证明,函数MapRoute
在参数构造中是相同的。如果您将MapHttpRoute
替换为MapRoute
,则应该能够编译代码并继续前进。
答案 2 :(得分:0)
我通过在System.Web.Mvc.Html
中添加对System.Web.Mvc
和web.config
的引用来解决此问题。
<system.web>
...
<httpRuntime targetFramework="4.5.2"/>
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Html" />
</namespaces>
</pages>
...
</system.web>