我正在尝试使用FromBody
属性,但是,它不起作用。这是我的方法:
[HttpPost]
public void SetMap([FromBody]int mapId)
{
Console.WriteLine("Map: {0}", mapId);
}
我在名为mapId
的请求中添加了一个参数,其值为10000
,但输出始终为0
。为什么会这样?
我正在使用POST
发送RestSharp
请求,如下所示:
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 + ".");
}
答案 0 :(得分:1)
您的客户端代码正在发送此请求消息:
POST /Character/SetMap?mapId=1000
Body: [empty]
您的服务器代码需要这样的请求消息:
POST /Character/SetMap
Body: 1000
您应该将[FromBody]
属性切换为[FromUri]
,以便客户端和服务器匹配。