我的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。
任何帮助都非常感激。
答案 0 :(得分:0)
您的实体类型名称是什么?基本上,请求模板的约定路由
~/entityset/key
遵循以下操作名称约定:
1. HttMethodName + entityTypeName
2. HttpMethodName
因此,请确保您的第二个操作名称遵循#1约定。感谢。
答案 1 :(得分:0)
对不起。错误地,我的WebApicConfig构建器配置错误。
而不是跟随 builder.EntitySet( “PersonalDetailsFull”);
我一直守着 builder.EntitySet( “PersonalDetailsFull”);
抱歉没问题。
由于