错误发生在这里:
defaults: new { id = RouteParameter.Optional }
我得到的错误:
类型'System.Web.Http.RouteParameter'存在于'z:\ Ember.n.SignalR \ bin \ System.Web.Http.Common.dll'和'z:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 4 \ Assemblies \ System.Web.Http.dll'
我的代码:
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace Ember.n.SignalR
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
//defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Customer", action = "Index", id = UrlParameter.Optional }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
BundleTable.Bundles.RegisterTemplateBundles();
}
}
}
答案 0 :(得分:2)
转到参考
- >右键单击System.Web.Http并获取其属性 - >指定别名,示例别名:MyAlias
现在在您的代码中执行此类更改
extern alias MyAlias;
using MyAlias.System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
我希望这能解决你的问题
答案 1 :(得分:0)
两个地方都有相同的集会。 asp.net-web api的程序集存在于GAC(全局程序集缓存)中,因为您已经安装了包含此程序集的asp.net mvc-4(以及其他程序集)。您的bin目录中存在相同的dll。您可以尝试从bin中删除dll,并在需要时从项目中取消引用它。