当我尝试使用具有[ODataRoutePrefix]
属性的第三级细分时,会引发如下错误:
控制器“ CONTROLLER-NAME”中动作“ Get”上的路径模板“ [TEMPLATE]”不是有效的OData路径模板。在OData路径模板“ [TEMPLATE]”中找到了未解析的路径段“ [LAST-SEGMENT]”。
[ODataRoutePrefix("lawsuits/{parentId}/depositsGuarantees")]
[ODataRoutePrefix("lawsuits/{parentId}/depositsGuarantees/{subResourceId}/customFields")]
config.EnsureInitialized()
)时出现错误消息:
控制器“ LawsuitDepositGuaranteeCustomFields”中操作“获取”的路径模板“ lawsuits / {parentId} / depositsGuarantees / {subResourceId} / customFields”不是有效的OData路径模板。在OData路径模板“ lawsuits / {parentId} / depositsGuarantees / {subResourceId} / customFields”中找到了一个未解决的路径段“ customFields”。 public IHttpActionResult Get(int parentId, int subResourceId)
{
// [...]
}
[ODataRoutePrefix("lawsuits/{parentId}/customFields")]
,这意味着在OData上已为“ customFields”细分。OData WebApi库6.0.0
答案 0 :(得分:1)
我发现了问题所在...
depositsGuarantees
段的 model 缺少为customFields
段注册的 model 的集合属性。实际上,缺少此属性:
public IEnumerable<CustomFieldModel> CustomFields { get; set; }
我仍然想知道我应该真正使用lawsuits/{parentId}/depositsGuarantees/{subResourceId}/customFields
还是仅使用depositsGuarantees/{parentId}/customFields
(尽管depositsGuarantees
也是子资源),但这只是一个概念性的讨论。