1

VisualStudio2012でAsp.netMVC4Webサイトを開始したとき、次のような例外が発生しました。

Could not load type 'System.Net.Http.Formatting.DefaultContentNegotiator' 
from assembly 'System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.

コードについて:

routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = System.Web.Http.RouteParameter.Optional }
            );

コード全体は次のようになります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Http;


namespace Accela.Apps.Diagnostics.Portal
{
    public class RouteConfig
    {
        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 }
           );
        }
    }
}

私をそこから追い出すのを手伝ってください。ありがとう。

4

2 に答える 2

2

古いバージョンの DLL を使用しているようです。できることは、プロジェクトから「System.Net.Http.Formatting」への既存の参照を削除し、これをインストールしてみてください

于 2012-12-17T09:30:31.733 に答える
0

そのオプションのパラメーターは、

UrlParameter.Optional 

のように

routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = UrlParameter.Optional  }
            );

それ以外のSystem.Web.Http.RouteParameter.Optional

于 2012-12-17T09:26:52.493 に答える