我在asp.net web api中创建服务。我正在使用其内置的aspnet身份验证,它创建一个AccountControloller,它是一个ApiController。除了AccountController,我的所有控制器都是ODataController,我还更新了WebApiConfig的Register方法来调用odata路由,如下所示:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
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 }
);
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Post>("Posts");
config.MapODataServiceRoute("api", "api", builder.GetEdmModel());
}
现在我的问题是我想从前缀api调用api和odatacontrollers但它只适用于api控制器(api / Account)而不是odata控制器(api / Posts)..我知道我是否会改变odata odata的前缀然后它将工作正常(odata / Posts)..但我想从相同的前缀调用两者。我搜索过它但没有得到任何有用的东西。请帮忙解决这个问题。