0

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 Client Api のバージョンも同様です。非常に厄介な問題です。どなたか対処法を教えていただければ幸いです。ありがとう。

4

3 に答える 3

3

RouteConfig.cs に System.Web.Http への参照を追加して解決しました。

于 2012-12-17T06:29:24.190 に答える
3

これと同じ問題が発生しましたが、System.Web.Http への参照を追加しても修正できませんでした。私はまだ同じエラーを受け取りました: System.Web.Routing.RouteCollection' does not contain a definition for 'MapHttpRoute'.

MVC4 の最新バージョンでは MapHttpRoute がサポートされなくなったため、これが発生していると思います。

結局のところ、この関数MapRouteはパラメーターの構成が同じです。に置き換えるMapHttpRouteMapRoute、コードをコンパイルして先に進むことができるはずです。

于 2013-11-05T01:08:08.827 に答える
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>
于 2016-11-02T17:45:34.867 に答える