Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Visual studio 2012 Web API属性路由HTTP 404_Visual Studio 2012_Asp.net Web Api2 - Fatal编程技术网

Visual studio 2012 Web API属性路由HTTP 404

Visual studio 2012 Web API属性路由HTTP 404,visual-studio-2012,asp.net-web-api2,Visual Studio 2012,Asp.net Web Api2,我无法使属性路由在WebAPI2中工作。我不是从WebAPI模板项目开始的,我认为它是一个空项目。基于约定的路由是可行的,但当我将路由属性添加到控制器操作时,会出现404错误。我找到了很多关于这方面的帖子,但是没有一个对我有帮助。它可能与项目模板有关,这是我从空项目开始时必须手动执行的操作。我确实在WebApiConfig中调用了MapHttpAttributeRoutes方法,并且iheriting ApicController类是公共的。在WebApiConfig类和应用程序启动方法中,我还

我无法使属性路由在WebAPI2中工作。我不是从WebAPI模板项目开始的,我认为它是一个空项目。基于约定的路由是可行的,但当我将路由属性添加到控制器操作时,会出现404错误。我找到了很多关于这方面的帖子,但是没有一个对我有帮助。它可能与项目模板有关,这是我从空项目开始时必须手动执行的操作。我确实在WebApiConfig中调用了MapHttpAttributeRoutes方法,并且iheriting ApicController类是公共的。在WebApiConfig类和应用程序启动方法中,我还需要做什么? 提前谢谢

这是我的WebApiConfig文件:

public static void Register(HttpConfiguration config)
    {
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{oId}/{oTypeCode}/{oTypeName}/{email}",
            defaults: new { controller = "Xrm", email = RouteParameter.Optional, oId = RouteParameter.Optional, oTypeCode = RouteParameter.Optional, oTypeName = RouteParameter.Optional}
        );
    }
和应用程序启动方法:

protected void Application_Start()
    {
        System.Web.Mvc.AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        log4net.Config.XmlConfigurator.Configure();
    }

当然,是我的错。我试图将电子邮件地址作为路径参数传递。将其作为查询字符串参数发送是有效的。我不确定将其作为路径的一部分发送会是什么样子,但它以这种方式为我工作。

分享您的一些代码。看看这个可能会有所帮助。