OData SingleResult <object>方法抛出404错误

时间:2015-07-30 23:32:53

标签: odata asp.net-web-api2

我的OData方法看起来像这样。第一种方法很好。但第二种方法抛出404 Not found错误。

[EnableQuery]
        public IQueryable<Personal> GetPersonalDetailsFull()
        {
            return db.PersonalDetails;
        }

    [EnableQuery]
        public SingleResult<Personal> GetPersonalDetail([FromODataUri] int key)
        {
            var data = db.PersonalDetails.Where(personalDetail => personalDetail.AutoId == key).AsQueryable();
            return SingleResult.Create(data);
        }

我对处理程序的web.config设置如下所示

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="/odata/*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

当我提出要求时

http://localhost:56234/odata/PersonalDetailsFull - 这样可以正常运行并获取所有数据

当我制作http://localhost:56234/odata/PersonalDetailsFull(16)时,它表示404 NOT not in fiddler和via client。

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

您的实体类型名称是什么?基本上,请求模板的约定路由 ~/entityset/key遵循以下操作名称约定:

1. HttMethodName + entityTypeName
2. HttpMethodName

因此,请确保您的第二个操作名称遵循#1约定。感谢。

答案 1 :(得分:0)

对不起。错误地,我的WebApicConfig构建器配置错误。

而不是跟随 builder.EntitySet( “PersonalDetailsFull”);

我一直守着 builder.EntitySet( “PersonalDetailsFull”);

抱歉没问题。

由于