CodeGo.net>如何在webapi 2.2 odata中进行未绑定的POST操作

我想在WebApi 2.2 OData 4服务上创建一个未绑定的操作,但无法弄清楚如何正确设置它.

这是我的简化代码(在名为UsersController的控制器中):

[HttpPost]
public IHttpActionResult InitializeUser([FromODataUri] int key, ODataActionParameters parameters)
{
    // code to save user to DB & initialize account information...
    return Ok<User>(new User());
}

还有我的WebApiConfig方法:

builder.Action("RegisterNewUser").ReturnsFromEntitySet<User>("Users");

当我在提琴手{“ Message”:“未找到与请求URI’http:// localhost / RegisterNewUser’.”相匹配的HTTP资源时,我返回了404.

odata服务可以正常工作,并支持所有普通的CRUD动词.

解决方法:

您需要将[ODataRoute(“ RegisterNewUser”))添加到InitializeUser.看起来像:

[HttpPost]
[ODataRoute("RegisterNewUser")]
public IHttpActionResult InitializeUser(ODataActionParameters parameters)
{
    // code to save user to DB & initialize account information...
    return Ok<User>(new User());
}

注意:由于这是一个未绑定的操作,因此不需要参数“ [FromODataUri] int键”.

这是一个动作示例,仅供参考:https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataActionsSample/.

上一篇:c#-WCF数据服务的动态实体模型


下一篇:SAP C4C OData服务的filter,客户端分页和排序的使用方式