asp.net - 找不到与所有表的请求 URI (...) 匹配的 HTTP 资源

标签 asp.net http odata entity-framework-6

正在关注 this tutorial作为指南 (OData/EntityFramework/Asp.Net)。

我能够在根目录上执行一个简单的 GET 命令。

{
"@odata.context": "http://localhost:49624/$metadata",
"value": [
    {
        "name": "Appointments",
        "kind": "EntitySet",
        "url": "Appointments"
    },

    ......

    {
        "name": "Clients",
        "kind": "EntitySet",
        "url": "Clients"
    }
]
}

但是任何比这更复杂的都会给我一个错误信息。 (我使用的是空 routePrefix。)

http://localhost:49624/Services

给我:

{
    "Message": "No HTTP resource was found that matches the request URI 'http://localhost:49624/Services'.",
    "MessageDetail": "No type was found that matches the controller named 'Services'."
}

这是我的 super 简单的 GET

[EnableQuery]
public IQueryable<Service> Get()
{
    return db.Services;
}

如果重要的话,我正在使用 Postman测试这些命令。尽管我认为这不是一个因素。

我有一个数据库和每个表的 DbSet。我不知道为什么我无法访问其中的任何内容。

WebApi配置:

        config.MapHttpAttributeRoutes();

        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Appointment>("Appointments");
        builder.EntitySet<Service>("Services");
        builder.EntitySet<Employee>("Employees");
        builder.EntitySet<Client>("Clients");

        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());

如果这是一个基本问题,我很抱歉,但我对这一切真的很陌生,而且已经在这堵墙上待得太久了哈哈。

最佳答案

上面的 Jan Hommes 指出 Controller 类需要复数(在我的例子中是 ServiceController -> ServicesController)

关于asp.net - 找不到与所有表的请求 URI (...) 匹配的 HTTP 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28616932/

相关文章:

http - 新选项卡或窗口中的跨浏览器客户端重定向

c# - 如何在 Asp.net MVC 中实现对象数据库

c# - 在 C# 中拆分 URL?

c# - 在代码中创建cookie,从浏览器中删除cookie,页面仍然可以读取已删除的cookie。如何?

c# - 为什么让我的 ODataController 有一个复数名称会阻止它工作

c# - 如何在 oData .Net core 3.1 中启用 $levels

c# - 适用于 .NET 的 OData 4.x 解析器

asp.net - 何时使用强类型 View ?

php - 从服务器 objective-c 获取数据

json - 是否可以使用 Stripe API 查询日期时间范围?