我试图将带有json内容的请求发送到web api,这些值不会自动映射到我的对象。
这是我的API动作导致null。
[HttpPost]
public IEnumerable<string> GetCustomerByName([FromBody] Request_GetCustomerByName request)
{
// Some Action
}
如果我更改下面的参数,我可以很好地收到我的数据。所以我想知道为什么我的json字符串不能自动映射到对象。
[HttpPost]
public IEnumerable<string> GetCustomerByName([FromBody] dynamic request)
{
// Some action
}
这是我发送请求的地方。
public ActionResult Index()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:40175/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Request_GetCustomerByName r = new Request_GetCustomerByName()
{
Customer = new Customer() { CustomerId = 1, CustomerName = "Name" },
RequestBase = new RequestBase() { Somefield="123"}
};
var json = new JavaScriptSerializer().Serialize(r);
HttpResponseMessage response = client.PostAsJsonAsync("api/values/GetCustomerByName", json).Result;
if (response.IsSuccessStatusCode)
{
var resVal = response.Content.ReadAsStringAsync().Result;
Response.Write(resVal);
}
}
return View();
}
谢谢,我已经被困在这一点上一段时间......