使用 FromBody 属性

Using the FromBody attribute

我正在尝试使用 FromBody 属性,但是它不起作用。这是我的方法:

[HttpPost]
public void SetMap([FromBody]int mapId)
{
    Console.WriteLine("Map: {0}", mapId);
}

我正在向名为 mapId 的请求添加一个值为 10000 的参数,但是,输出始终为 0。为什么会这样?

我正在使用 RestSharp 发送 POST 请求,如下所示:

private void button1_Click(object sender, EventArgs e)
        {

            var client = new RestClient("http://localhost:8999");
            var request = new RestRequest(Method.POST);



            request.Resource = "Character/SetMap";
            request.AddParameter("mapId", 1000);

            var response = client.Execute(request);

            var data = response.Content;

            MessageBox.Show("Online: " + data + ".");
        }

您的客户端代码正在发送此请求消息:

POST /Character/SetMap?mapId=1000
Body: [empty]

您的服务器代码需要这样的请求消息:

POST /Character/SetMap
Body: 1000

您应该将 [FromBody] 属性切换为 [FromUri] 以便您的客户端和服务器匹配。