我花了大约 2 天的时间来设置我的 Odata Web API 项目,这是一个简单的 Asp.net mvc4 项目之前的项目。
但是我仍然没有成功地操作 CRUD 操作。它是这样说的:
<m:message xml:lang="en-US">
No HTTP resource was found that matches the request URI 'http://localhost:53208/odata/Product'.
</m:message>
<m:innererror>
<m:message>
No action was found on the controller 'Product' that matches the request.
</m:message>
<m:type/>
<m:stacktrace/>
</m:innererror>
这意味着它到达控制器但没有找到操作,或者我的路由设置有问题。
我的 WebApiConfig 中有以下内容:
config.Routes.MapODataRoute("OData","odata",GetEdmModel());
我的 getEdmModel 方法:
private static IEdmModel GetEdmModel()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Product");
builder.EntitySet<OfferedProduct>("OfferedProduct");
IEdmModel model = builder.GetEdmModel();
return model;
}
我的控制器是这样的:
public class ProductController : EntitySetController<Product,int>
{
private OfferAssistantDbContext db = new OfferAssistantDbContext();
List<Product> Products = new OfferAssistantDbContext().Products.ToList();
// GET api/Product
[Queryable(PageSize = 10)]
public override IQueryable<Product> Get()
{
return Products.AsQueryable();
}
// GET api/Product/5
public Product GetProduct([FromODataUri] int id)
{
return Products[id];
}
/// and so on... but for this time lets work only on GET operation
现在,当我在浏览器中编写此代码时:
http://localhost:53208/odata/Product
它说我上面显示的错误..
请指导我问题在哪里?