RouteParameter错误

时间:2013-04-16 10:24:26

标签: 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 \ 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();
        }
    }
}

2 个答案:

答案 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,并在需要时从项目中取消引用它。