我创建了一个Web Api OData控制器,并尝试直接查看它,但它不起作用。Web Api Odata不工作
WebApiConfig配置
public static void Register(HttpConfiguration config)
{
config.Routes.MapODataRoute("odata", "odata", GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
public static IEdmModel GetEdmModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customers");
builder.Namespace = "PackageManager.Models";
return builder.GetEdmModel();
}
在应用程序启动
调用登记:
WebApiConfig.Register(GlobalConfiguration.Configuration);
阿比控制器:
public class CustomersController : EntitySetController<Customer, string>
{
NorthwindDbContext _Context = new NorthwindDbContext();
[Queryable]
public override IQueryable<Customer> Get()
{
return _Context.Customers;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
_Context.Dispose();
}
}
尝试访问: 本地主机:2375 /的OData /客户
然后总是出错:
无法找到该资源。
我看着你的代码,它看起来绝对很好。 “无法找到资源”看起来不像Web API抛出的错误,所以请求一定不会让它进入Web API。它可能是IIS不适合你。该文件夹是否被归为IIS应用程序? – 2013-03-13 18:50:03
我没有在IIS上部署,我使用vs iis express。最有趣的事情,首先我添加Odata控制器它工作正常。之后安装HOt毛巾单页应用程序,然后它不起作用。它尝试了很多选择,但没有奏效。如果您有任何其他线索,请告诉我。 – Parwej 2013-03-14 16:51:10
我有完全相同的问题 - 你能解决这个问题吗? – t316 2013-06-09 19:35:07