我在使用WEBAPI 2的属性路由时遇到了问题。我需要实现的路由方案是/api/{product}/{controller}/{id-optional}
,例如/api/Vision/IdCard
。这些控制器位于一个区域内,并按照以下方式设置:
namespace DataServices.Controllers.Vision
{
[RoutePrefix("api/vision")]
public class IdCardController : BaseApiController
{
[System.Web.Mvc.RequireHttps]
[Route("idcard")]
public IdCardViewModel Get(HttpRequestMessage request)
{...}
每当我尝试调用该接口时,都会收到一个404错误代码。我已经在代码中包含了命名空间,因为该区域位于自己的命名空间下,但是这样做仍然无法解决问题。请问WEBAPI属性路由支持区域吗?
编辑:WebApiConfig如下:
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
MapHttpAttributeRoutes()
函数? - Hamid Pourjam