Web API - 从Querystring和Form Body获取值

时间:2014-03-08 08:41:36

标签: c# asp.net asp.net-web-api

我在Web API中有一个行为,其路径如下:

/users/{userId}/friends

我想通过以下操作向其发布一个值:

[ActionName("friends")]
        public IHttpActionResult Friends2(string userId, [FromBody]string friendId)

我发布的JSON如下:

{ "friendId": "123" }

但是,friendId始终为null。我认为这是因为Web API在指定[FromBody]时只允许使用1个参数。

那么如何使用来自查询字符串的userId和身体中以JSON身份出现的friendId来发布此操作?

1 个答案:

答案 0 :(得分:2)

您可以使用控制器操作将作为参数的视图模型并绑定到正文中发送的JSON结构:

public class MyViewModel
{
    public string FriendId { get; set; }
}

然后:

ActionName("friends")]
public IHttpActionResult Friends2(string userId, MyViewModel model)
{
    ...
}