OData的行动,并同一条路线

问题描述:

功能我已经注册的功能如下:OData的行动,并同一条路线

individualType.Function(nameof(IndividualsController.Photo)).Returns<byte[](); 

功能的定义是:

/// <summary> 
/// Returns a photo for the specified individual. 
/// </summary> 
[HttpGet] 
[AllowAnonymous] 
public IHttpActionResult Photo([FromODataUri] int key, [FromUri] string size = "M", [FromUri] string shape = "S") 

的请求已经在为我们能够上传照片。所需的方法是发布到相同的端点。

当我按以下方式注册操作时,两个端点都不起作用。

var action = individualType.Action(nameof(IndividualsController.Photo)); 
action.Parameter<string>("hexEncodedPhoto"); 
action.Returns<UploadIndividualPhotoResult>(); 

当我改变它,这两个工作,但在不同的端点是不可取的。

var action = individualType.Action(nameof(IndividualsController.UploadPhoto)); 
action.Parameter<string>("hexEncodedPhoto"); 
action.Returns<UploadIndividualPhotoResult>(); 

此方法的签名是目前:

[HttpPost] 
[Auth(AccessRight = SecurityType.PeopleEdit)] 
public async Task<IHttpActionResult> UploadPhoto([FromODataUri] int key, ODataActionParameters parameters) 

是否有可能有两种功能:(GET)和OData的同一航线上的动作(POST)?

从OData规范的角度来看,同一名称空间下的每个元素都应该有唯一的名称。所以,我认为你的要求不合理。

请让我知道,如果它是错误的。