如何在webapi 2.2中创建一个未绑定的POST动作
本文关键字:一个 绑定 POST 动作 webapi 创建 | 更新日期: 2023-09-27 18:12:28
我想在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");
当我在fiddler {"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 key,"是不需要的。
下面是一个动作示例,仅供参考:https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataActionsSample/.