Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 路由参数误差_C#_Asp.net Mvc - Fatal编程技术网

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;
我希望这能解决你的问题