2012-12-17 52 views
0

我正在從Asp.net MVC4測試版遷移到Asp.net MVC4,但我遇到了缺少dll參考的問題。請幫幫我 。將Asp.net MVC4從測試版遷移到4時缺少組件參考

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?)

更重要的是,這樣的問題往往happened.Because的Asp.net MVC變化的版本,以便在頻繁這些天。和Windows Azure Client ApI版本一樣。這是一個非常煩人的問題,我希望有人能提出一些建議如何處理它。謝謝。

回答

3

我已經通過在RouteConfig.cs中添加對System.Web.Http的引用來解決此問題。

3

我遇到了同樣的問題,但無法通過添加對System.Web.Http的引用來修復它。我仍然收到相同的錯誤:System.Web.Routing.RouteCollection' does not contain a definition for 'MapHttpRoute'

我相信這是因爲在最新版本的MVC4中,MapHttpRoute不再受支持。

事實證明,函數MapRoute在參數構造中是相同的。如果您將MapHttpRoute替換爲MapRoute,則應該能夠編譯您的代碼並向前移動。

+0

老闆。真正。真正。 –

0

我通過添加在web.configSystem.Web.Mvc.HtmlSystem.Web.Mvc參考解決了這個。

<system.web> 
    ... 
    <httpRuntime targetFramework="4.5.2"/> 
     <pages> 
      <namespaces> 
       <add namespace="System.Web.Mvc" /> 
       <add namespace="System.Web.Mvc.Html" /> 
      </namespaces> 
     </pages> 
    ... 
    </system.web> 
相關問題