【发布时间】:2015-03-27 21:08:17
【问题描述】:
我已将 OData V4 添加到我的 Web Api 2 应用程序中。 WebApiConfig注册OData路由在默认路由前注册方法:
//defining the routes for our OData service
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "odata",
model: GenerateEdmModel());
private static IEdmModel GenerateEdmModel()
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Media>("Media");
return builder.GetEdmModel();
}
MediaController.cs
[EnableQuery]
public IQueryable<ApiMedia> GetMedia(ODataQueryOptions<Media> query )
{
*querying and returning media*
}
但是当我打电话给localhost:80880/odata/media
返回的响应说:
找不到资源。 请求的 URL:/odata/media
调用localhost:80880/odata 会返回:
{
"@odata.context":"http://localhost:80880/odata/$metadata","value":[
{
"name":"Media","kind":"EntitySet","url":"Media"
}
]
}
那么这里有什么问题吗? (它是否在寻找一个名为 odata 的控制器?) 我按照http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint上的教程进行操作
【问题讨论】: