C# 路由参数误差
错误发生在这里:C# 路由参数误差,c#,asp.net-mvc,C#,Asp.net Mvc,错误发生在这里: 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\Assemblys\System.Web.Http.dll”中 我的代码: us
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\Assemblys\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();
}
}
}
相同的组件在两个位置上。asp.net-web api的程序集存在于GAC(全局程序集缓存)中,因为您已安装包含此程序集(以及其他程序集)的asp.net mvc-4。bin目录中存在相同的dll。您可以尝试从bin中删除dll,如果需要,还可以从项目中取消引用它。转到“引用” ->右键单击System.Web.Http并获取其属性 ->指定别名,示例别名:MyAlias 现在在您的代码中进行如下更改
extern alias MyAlias;
using MyAlias.System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
我希望这能解决你的问题