Visual studio 2012 Web API属性路由HTTP 404
我无法使属性路由在WebAPI2中工作。我不是从WebAPI模板项目开始的,我认为它是一个空项目。基于约定的路由是可行的,但当我将路由属性添加到控制器操作时,会出现404错误。我找到了很多关于这方面的帖子,但是没有一个对我有帮助。它可能与项目模板有关,这是我从空项目开始时必须手动执行的操作。我确实在WebApiConfig中调用了MapHttpAttributeRoutes方法,并且iheriting ApicController类是公共的。在WebApiConfig类和应用程序启动方法中,我还需要做什么? 提前谢谢 这是我的WebApiConfig文件: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类和应用程序启动方法中,我还
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();
}
当然,是我的错。我试图将电子邮件地址作为路径参数传递。将其作为查询字符串参数发送是有效的。我不确定将其作为路径的一部分发送会是什么样子,但它以这种方式为我工作。分享您的一些代码。看看这个可能会有所帮助。