我正在构建CRUD OData(ODataController
)控制器。对于此请求
声明如下的 PATCH 操作有效。该模型具有标记为KeyAttribute
public async Task<IHttpActionResult> Patch(
[FromODataUri] int key,
Delta<MyModel> modelDelta)
这个不起作用(请注意,我将参数id
命名为key
而不是public async Task<IHttpActionResult> Patch(
[FromODataUri] int id, // <--- invalid argument name?
Delta<MyModel> modelDelta)
)。它返回404 - 找不到资源:
[ODataRoute("({id})")]
我还尝试用patch
标记此操作但我得到了这个
控制器“MyData”中操作“Patch”上的路径模板'({id})'不是有效的OData路径模板。请求URL中遇到空段。请确保指定了有效的请求网址。
我是否可以灵活地专门命名参数?特别是当我可能有2-3个键/参数时。我希望能够使用 public async Task<IHttpActionResult> Patch(
[FromODataUri] int id1,
[FromODataUri] int id2,
Delta<MyModel> modelDelta)
作为
InputStream is;
if (con.getErrorStream() == null) {
is = con.getInputStream();
}
答案 0 :(得分:0)
你的班级是这样声明的:
//Must declare this attribute to relative ODataRoute Works
[ODataRoutePrefix("MyData")]
public class MyDataController : ODataController
...
否则必须声明路线
[ODataRoute("MyData({id})")]
...